码迷,mamicode.com
首页 > 移动开发 > 详细

js 对call apply bind理解

时间:2017-09-01 19:44:58      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:nbsp   ccf   color   blog   数组   article   function   一个   art   

请参考 http://www.cnblogs.com/xljzlw/p/3775162.html
call apply
var mtt = { name: "mtt", sayHello: function (age) { console.log("hello, i am ", this.name + " " + age " years old"); } }; var xjs = { name: "xjs ",
}; mtt.sayHello(24);// hello, i am zlw 24 years old

apply参数需要是数组形式,而call参数需要用逗号隔开24,25
mtt .sayHello.call(xjs , 24);// hello, i am xjs 24 years old
mtt .sayHello.apply(xjs , [24]);// hello, i am xjs 24 years old

bind方法传递给调用函数的参数可以逐个列出,也可以写在数组中。bind方法与call、apply最大的不同就是前者返回一个绑定上下文的函数
mtt .sayHello.bind(xjs)(24); //hello, i am xlj 24 years old
mtt .sayHello.bind(xjs)([24]); //hello, i am xlj 24 years old

bind
var bind = Function.prototype.call.bind(Function.prototype.bind);

var zlw = {
 name: "zlw" 
};

function hello () {
  console.log("hello, I am ", this.name);
}

bind(hello, zlw)() // hello, I am zlw
 

js 对call apply bind理解

标签:nbsp   ccf   color   blog   数组   article   function   一个   art   

原文地址:http://www.cnblogs.com/mttcug/p/7464683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!