我正在学习javascript,并在此处进行了一个示例: https://developer.mozilla.org/en/A_re-introduction_to_JavaScript
function personFullName() {
return this.first + ' ' + this.last;
}
function personFullNameReversed() {
return this.last + ', ' + this.first;
}
function Person(first, last) {
this.first = first;
this.last = last;
this.fullName = personFullName;
this.fullNameReversed = personFullNameReversed;
}
var x = new Person('mickey', 'mouse');
document.write(x.fullName());
为什么是代码行
this.fullName = personFullName;
this.fullNameReversed = personFullNameReversed;
而不是
this.fullName = personFullName();
this.fullNameReversed = personFullNameReversed();
我认为我们是根据this.fullName
personFullName()
答案 0 :(得分:3)
该代码使“fullName”和“fullNameReversed”属性为函数,而非简单属性。
因此,如果您需要全名,请编写x.fullName();
函数是JavaScript中的对象,可以是变量和属性的值。这是一个让JavaScript出奇的强大功能。
答案 1 :(得分:1)
this.fullName = personFullName;
创建一个名为fullName
的方法,并为其指定声明为personFullName
的函数
如果你要做
this.fullName = personFullName();
将创建一个名为fullName
的对象属性,该属性保存在调用时在该特定时刻生成的personFullName()
值。
答案 2 :(得分:1)
personFullName
返回函数本身(就像一个指针)。
personFullName()
返回函数的结果。
这允许Person
对象具有返回全名的方法,而不是属性。如果我使用x.first = newVal
这样的对象,fullName
方法会重新计算全名。
如果是属性,我必须像''x.first = newVal一样使用它; x.fullName = newFullName;'。
希望这有帮助。