Ric*_*rdo 0 javascript function object
我是javascript的新手,我想知道为什么bob.age
还是30,而age
我打电话的时候是50.我已经设置age
到50 setAge
所分配50 this.age
,这是我所知道的是一个参考bob.age
,所以age
并bob.age
应具有相同的价值.
// here we define our method using "this", before we even introduce bob
var setAge = function (newAge) {
this.age = newAge;
};
// now we make bob
var bob = new Object();
bob.age = 30;
// and down here we just use the method we already made
// change bob's age to 50 here
bob.setAge = setAge(50);
Run Code Online (Sandbox Code Playgroud)
你的代码/理解中有几个错误,我将首先解释为什么这是错误的,并解释它周围的概念
var bob = new Object()
使bob成为常规对象.
你的setAge
函数接受一个参数.它设定this.age
为该值.但是setAge放在全局范围内.因此this
- > window
.这就是为什么当您在age
全球范围内输入50时.
Jaromanda是正确的,你需要将函数setAge
放在对象bob上.
如果你正在玩弄this
你可能会对伪古典实例化风格感兴趣:
var Person = function(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.setAge = function(newAge) {
this.age = newAge;
}
var bob = new Person ('Bob', 30);
bob.setAge(50);
bob.age;
// 50
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
106 次 |
最近记录: |