了解在 JavaScript 中为对象分配函数
Understanding assignment of functions to an object in javascript
大家好,大家第一次在这里发帖。
所以我试图理解一些东西,我也会在这里发布代码,但如果你想查看源代码,它是这个" 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
函数。
相关文章:
- 为什么在Javascript中将一个对象分配给另一个变量也会更改初始对象
- 在运行时使用预先确定的对象分配变量
- Javascript对象分配gottcha
- 通过程序将对象分配给数组
- AngularJS-对象分配不起作用
- 在PHP中为JSON对象分配标识符/名称
- 对象分配在此angularjs控制器中不起作用
- 对象分配 - 更新特定属性
- 将对象分配给另一个对象并保留原始数据
- ES6 对象分配部分项
- 为每个对象分配一个键
- 将函数中的对象分配给变量或调用 setState 没有这个
- 按对象数组中的值为对象分配等级
- 为什么将其他对象分配给内置对象(例如文档、窗口)没有意义
- 将FileReader内部的结果对象分配给变量
- 为Javascript对象分配函数
- Javascript对象分配'他奇怪的行为
- 了解在 JavaScript 中为对象分配函数
- 为CanvasXpress的Json对象分配Javascript数组值
- 只需使用Immutable.js将对象分配给变量,即可克隆新对象