企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
`call`跟`apply`的用法几乎一样,唯一的不同就是传递的参数不同 `call`只能一个参数一个参数的传入。 `apply`则只支持传入一个数组,哪怕是一个参数也要是数组形式。最终调用函数时候这个数组会拆成一个个参数分别传入。 至于`bind`方法,他是直接改变这个函数的`this`指向并且返回一个新的函数,之后再次调用这个函数的时候`this`都是指向`bind`绑定的第一个参数。 ***** call: ``` var obj = {}; function foo(a, b, c) { console.log(b); // 2 } foo.call(obj, 1, 2, 3) ``` apply: ``` var obj = {}; function foo(a, b, c) { console.log(b); // 2 } foo.apply(obj, [1, 2, 3]) ``` bind: ``` var A = { name: "A", } var B = { name: "B", getName: function () { console.log(this.name); }, } B.getName.bind(A)(); //A B.getName.call(A); //A B.getName.apply(A); //A ```