axios学习笔记
找到入口文件
axios/lib/axios.js
(
var utils = require('./utils');
var bind = require('./helpers/bind')
...
)
学习bind
axios/lib/helpers/bind.js
为什么要先看bind呢,因为utils中引入了bind
(
//目的将fn的执行上下文换成thisArg,并返回
function bind(fn, thisArg){
return functuon wrap(){
//将类数组转化为数组,
//es5 Array.prototype.slice.call(arguments) || [].slice.call(arguments)
//es6 Array.form(arguments) || [...arguments]
var args = new Array(arguments.length)
for(var i = 0; i < arg.length; i++){
args[i] = arguments[i];
}
//使用apply改变fn执行环境上下文,并返回
return fn.apply(thisArg, args)
}
}
)