我有一个对象,它有一个使用属性的方法。我是否正确使用了该属性?
function TestObject(words) {
this.words = words;
function alertStuff() {
console.log(this.words);
}
}
doItPlease = new TestObject('say something!');
doItPlease.alertStuff();
我有一个对象,它有一个使用属性的方法。我是否正确使用了该属性?
function TestObject(words) {
this.words = words;
function alertStuff() {
console.log(this.words);
}
}
doItPlease = new TestObject('say something!');
doItPlease.alertStuff();
JavaScript 中的属性和变量是不同的。
this.alertStuff = function() {
console.log(this.words);
}
您的this
示例中的 保存对新对象的引用。构造函数中的任何参数/变量与该对象没有直接关系。
更惯用的是将函数添加到公共原型对象而不是每个实例。
TestObject.prototype.alertStuff = function() {
console.log(this.words);
}
这是如何工作的,当你这样做时, indoItPlease.alertStuff()
的值会自动设置为对象。因此,该方法可以访问该对象及其所有属性。this
alertStuff
doItPlease
alertStuff()
因为您从TestObject
构造函数创建的所有实例TestObject.prototype
在它们的原型链中都有相同的对象,所以内存开销更少,因为它们都共享相同的函数。