大家好,第一次来这里。
因此,我试图理解一些内容,我也会在此处发布代码,但是如果您想查看源代码,则此代码为“ https://www.codecademy.com/en/courses/spencer-sandbox/2/5?curriculum_id=506324b3a7dffd00020bf661”
这是代码学院的练习。
所以有bob.setAge = setAge;
,为什么没有把它设为bob.setAge= newAge;
?
这是代码。
var setAge = function (newAge) {
this.age = newAge;
};
// now we make bob
var bob = new Object();
bob.age = 30;
bob.setAge = setAge;
// make susan here, and first give her an age of 25
var susan = new Object();
susan.age=25;
susan.setAge = setAge;
// here, update Susan's age to 35 using the method
susan.setAge(35);
最佳答案
我相信本练习将尝试教您没有语法糖的JavaScript面向对象编程的基础。
简而言之,他们正在创建person
,并且person
可以具有描述它们的一组属性以及它们可以执行的一组操作。
您已经在此处创建了名为setAge
的函数
var setAge = function (newAge) {
this.age = newAge;
};
它将
this
的年龄设置为newAge
。但是这里的问题是什么是this
?答案取决于它,这就是为什么您可以重用此功能的原因。因此,当您“制作鲍勃”
// now we make bob
var bob = new Object();
bob.age = 30;
bob.setAge = setAge;
您正在说的是
bob
有一个可以执行的动作,称为setAge
,该动作等效于我们前面定义的称为setAge
的功能。同样在此上下文中,this
是指bob
。因此,当您执行类似
bob.setAge(20)
的操作时,以bob.age
表示的this.age
将从30
更改为20
。那有意义吗?
同样在您的链接中有此报价
大!现在我们可以利用以下事实:setAge方法不限于单个对象bob
无论是bob还是susan,如果将其分配给对象,则始终可以使用与上面定义的相同的
setAge
函数。