大家第一次在这里发帖。
所以我试图理解一些东西,我也会在这里发布代码,但是如果你想查看源代码,那么这就是" https://www.codecademy.com/en/courses/spencer-sandbox/2/5?curriculum_id=506324b3a7dffd00020bf661"
这是来自codeacademy的练习......
所以有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);
答案 0 :(得分:1)
我相信这个练习试图在没有语法糖的情况下教你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
函数。