美文网首页
JavaScript改变this指向的3种方法(代码说明)

JavaScript改变this指向的3种方法(代码说明)

作者: 刘翾 | 来源:发表于2017-11-08 21:19 被阅读14次

我们用例子来说明问题

隐式转换

var id = 10;
function a() {
  console.log(this.id);
};
var obj2 = {
    id: 30
}
var obj1 = {
    id: 20
}
a.call(obj2);//30
a.call(obj1);//20
//a函数内的this指向随着call的指向而变化

显示转换

var id = 10;
function a() {
  console.log(this.id);
};
var obj2 = {
    id: 30
}
var obj1 = {
    id: 20
}

//使用bind之后, 返回的函数内部this定死, 无法再改变this
var b = a.bind(obj2);//返回一个函数
b.call(obj1);//30
b();//30

new

function a() {
    this.a = 1;
    this.b = 2;
}

var a1 = new a();
//this指向对象

相关文章

网友评论

      本文标题:JavaScript改变this指向的3种方法(代码说明)

      本文链接:https://www.haomeiwen.com/subject/paqumxtx.html