我正在阅读JavaScript教程,并且能够完成它。但是问题是我不明白其中一条线在做什么。我有一个函数setAge()
,然后在创建了susan
对象之后,我将该对象的属性之一设置为该函数的名称?我不明白为什么要这么做。不这样做我是否可以使用功能/方法?
教程代码:
var setAge = function (newAge) {
this.age = newAge;
};
var susan = new Object();
susan.age = 25;
susan.setAge = setAge; //how the hell does this work?
// here, update Susan's age to 35 using the method
susan.setAge(35);
最佳答案
它将susan
的属性setAge
分配给上面定义的函数,
function (newAge) {
this.age = newAge;
};
这是一个接受一个参数的函数。调用
susan.setAge(35);
时,this
将引用调用者susan
,将其年龄更新为35岁。困惑可能是因为
setAge
被使用了两次。 Susan的功能在左侧定义,右侧已经定义。例如:susan.letMyAgeBe = setAge;
susan.letMyAgeBe(35);
工作原理相同。
setAge
也是“可重用的”:harry = new Object();
harry.iAmThisOld = setAge;
harry.iAmThisOld(55);
演示 http://jsfiddle.net/7JbKY/2/
关于javascript - 新手关注: JavaScript function usage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10963916/