在js对象中可以创建一个方法来作为对象的一个属性,作为属性时,method其实就是一个函数。

1
2
3
4
5
6
7
8
var duck = {
name : "Aduck",
numLegs : 2,
sayName:function(){
return "鸭子的名字是" + duck.name + ".";
}
}
duck.sayName(); //鸭子的名字是Aduck.

使用this关键字

我们可以通过 对象名.属性 的方式来获取对象中某个属性的值,但是这样做并不严谨并且会导致错误的出现。如果我们通过这种方式来进行调用的话,一旦我们改掉对象的名称,那么对象内部的相关属性也需要进行修改,如果代码量过大则更容易导致错误的出现。

1
2
3
···
return "鸭子的名字是" + duck.name + ".";
···

所以我们需要使用this关键字来进行代替。

1
2
3
···
return "鸭子的名字是" + this.name + ".";
···

这样一来,即便我们修改了对象名,也不会引起函数内部的错误。

理解

我对于this的理解就是,它在当前的对象内部指代了对象的名称,就如同我们平常所说:“他的名字叫小米。。”这里的他就像this,代指了小米。

评论