首页 > 其他 > 详细

bind的用法

时间:2021-01-03 19:12:09      阅读:36      评论:0      收藏:0      [点我收藏+]

bind与call, apply一样,就是用来改变this指向的,不同的是,bind不会执行函数,而是返回一个新的函数

var name = 小王, age = 17;
var obj = {
  name: 小张,
  objAge: this.age,
  myFun: function() {
    console.log(this.name + 年龄 + this.age);
  }
}

console.log(obj.objAge); //17, obj里面的this指向window,字面量的{}不构成作用域
obj.myFun(); //小张年龄undefined,此时myFun中的this指向obj

 

var name = "小王", age = 17;
var obj = {
  name: 小张,
  objAge: this.age,
  myFun: function(fm, t) {
    console.log(this.name + "年龄" + this.age, "来自" + fm + 去往 + t);
  }
}

var db = {
  name: 德玛,
  age: 99
}

obj.myFun.call(db, 成都, 上海);//德玛年龄99 来自成都去往上海
obj.myFun.apply(db, [成都, 上海]);//德玛年龄99 来自成都去往上海
obj.myFun.bind(db, 成都, 上海)();//德玛年龄99 来自成都去往上海
//预定义参数
obj.myFun.bind(db, [成都, 上海])();//德玛年龄99 来自成都,上海去往undefined
obj.myFun.bind(db, [成都, 上海])(北京);//德玛年龄99 来自成都,上海去往北京

call和apply的用法在这里就不赘述了

关于bind方法的多参数问题:

bind的第一个参数也是this所指向的对象,但是从第二个参数开始,就是bind方法所返回函数的预定义参数,第二个参数对应新函数的第一个参数,第三个参数对应新函数的第二个参数以此类推,并且传参方式与call相同。

 

bind的用法

原文:https://www.cnblogs.com/wanqiblog/p/14225703.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!