为了加强call和apply的理解,大致的写点让自己较易理解,就是对参数继承时数据类型不同;
call例子:
var d = "", v = "ffff", l = "ddddd"; (function (b, c) { console.log("b="+b);
console.log(" ");
console.log("c="+c)
}).call(d, v, l)
控制台输出:
很显然call(d, v, l)其中d可传this一样调用该函数的对象,可为NULL(此时为window),v, l作为参数依次对应传给b和c
apply例子:
1 var d = "", 2 v = ["ffff", "ddddd"]; 3 4 (function (b, c) { 5 6 console.log("b=" + b); 7 8 console.log(" "); 9 10 console.log("c=" + c) 11 12 }).apply(d, v)
控制台输出:
apply(d, v)其中d可传this一样调用该函数的对象,可为NULL(此时为window),v是一个数组参数,数组中的值依次对应传给b和c
可以看出call和apply区别在于call后面的每一个参数和其调用的函数中的参数依次相对应,apply是数组与其对应关系。当然这只是简单的理解下便于自己对它们关系的理解,希望对你们也有用,谢谢!