call和apply的区别
为了加强call和apply的理解,大致的写点让自己较易理解,就是对参数继承时数据类型不同;
call例子:
var d = "", v = "ffff", l = "ddddd"; (function (b, c) { console.log("b="+b);
console.log("\n");
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("\n"); 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是数组与其对应关系。当然这只是简单的理解下便于自己对它们关系的理解,希望对你们也有用,谢谢!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步