我有一个对象,它有一个使用属性的方法。我是否正确使用了该属性?
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
保存对新对象的引用。构造函数中的任何参数/变量与该对象没有直接关系。
更惯用的做法是将函数添加到公共(public)原型(prototype)对象而不是每个实例中。
TestObject.prototype.alertStuff = function() {
console.log(this.words);
}
其工作原理是,当您执行 doItPlease.alertStuff()
时,alertStuff
中 this
的值会自动设置为 doItPlease
对象。因此,alertStuff()
方法可以访问该对象及其所有属性。
由于您从 TestObject
构造函数创建的所有实例在其原型(prototype)链中都具有相同的 TestObject.prototype
对象,因此内存开销较少,因为它们都共享相同的函数.
关于javascript - 将 js 对象的属性传递到其方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17371563/