call、apply、bind 解析
1. call、apply、bind 都是用来重定义this的
2. call、apply、bind区别
//call、apply、bind区别 var obj = { name: "猴菇", age: 2, introduce1: function(hobby, food) { alert(this.name+"-"+this.age+"-"+hobby+"-"+food); }, introduce2: function () { alert(this.name+"-"+this.age); } } var objThis = { name: "猴面包树", age: 1 } //不带参数调用对比:call、apply没啥区别,bind返回的是一个新的函数(所以需要加括号调用) obj.introduce2.call(objThis); obj.introduce2.apply(objThis); obj.introduce2.bind(objThis)(); //带参数调用对比: //call:参数按顺序一个个传入即ok //apply:参数必须放入数组一起传入 //bind:参数按顺序一个个传入即ok obj.introduce1.call(objThis, "爬山", "番茄"); obj.introduce1.apply(objThis, ["爬山", "番茄"]); obj.introduce1.bind(objThis, "爬山", "番茄")();