call、apply、bind 区别
程序员文章站
2022-04-19 22:25:32
1.为什么要用 call 、apply? 为了 改变方法里面的属性而不去改变原来的方法 2.call 与apply 区别 1)call 参数固定 apply 参数不固定 apply 参数是放在数组里面的 2)call 可以将伪数组转换为真正的数组例如一个例子: 3) bind 是返回对应函数,便于稍 ......
1.为什么要用 call 、apply?
为了 改变方法里面的属性而不去改变原来的方法
function fruits() {} fruits.prototype = { color: "red", say: function() { console.log("my color is " + this.color); } } var apple = new fruits; apple.say(); //my color is red banana = { color: "yellow" } } apple.say.call(banana); //my color is yellow a apple.say.apply(banana); //my color is yellow
2.call 与apply 区别
1)call 参数固定 apply 参数不固定 apply 参数是放在数组里面的
2)call 可以将伪数组转换为真正的数组
例如一个例子:
function log(){ var args = array.prototype.slice.call(arguments); args.unshift('(app)'); console.log.apply(console, args); }; log("hello world"); //(app)hello world
3) bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。
function show(sex){ console.log("普通函数"+sex); } var person={ name:"aa", age:14 }; show.call(person,"男"); show.apply(person,["女"]); //对于bind来说,用法更加的灵活 show.bind(person,"不明")( ); // var ss=show.bind(person,"不明"); // ss();
推荐阅读
-
Javascript中apply、call、bind的用法讲解
-
浅谈JavaScript中的apply/call/bind和this的使用
-
JavaScript函数apply()和call()用法与异同分析
-
javascript中call,apply,bind函数用法示例
-
js中apply()和call()的区别与用法实例分析
-
全面解析Angular中$Apply()及$Digest()的区别
-
apply、bind、call方法的作用与区别
-
浅谈Pandas中map, applymap and apply的区别
-
Oracle数据库中 call 和 exec的区别
-
Oracle call 和 exec的详解及区别