如何在创建时创建一个新对象 运行 的实例?
How do I make an instance of a new object run its methods upon creation?
您好,我在自调用属于对象原型的函数时遇到问题。我的目标是为自定义对象创建一个方法,该方法调用它在创建实例时具有的函数。
function Message(text) {
this.text = text;
}
Message.prototype.send = function() {
alert(this.text);
}();
var testMessage = new Message("Hello Goodbye");
这里的问题是我在创建 Message 对象的实例时收到 undefined。这可能与关键字 "this" 的定义方式有关,尽管我不完全确定。但是,如果不是将方法添加到原型中,而是将其放入函数中,它会像下面的那样工作得很好。
function Message(text) {
this.text = text;
this.send = function() {
alert(text);
}();
}
var testMessage = new Message("Hello Goodbye");
发送方法在您使用 ()
调用它时准确运行 - 检查您的控制流。
在第一种情况下,您在 Message 的原型属性上定义了一个函数,然后调用它。它警告未定义,因为 Message.prototype(this
在该上下文中)不包含文本属性。
在第二种情况下,您在调用 send
之前将 text
添加到 this
,从而在警报运行时定义它。
您好,我在自调用属于对象原型的函数时遇到问题。我的目标是为自定义对象创建一个方法,该方法调用它在创建实例时具有的函数。
function Message(text) {
this.text = text;
}
Message.prototype.send = function() {
alert(this.text);
}();
var testMessage = new Message("Hello Goodbye");
这里的问题是我在创建 Message 对象的实例时收到 undefined。这可能与关键字 "this" 的定义方式有关,尽管我不完全确定。但是,如果不是将方法添加到原型中,而是将其放入函数中,它会像下面的那样工作得很好。
function Message(text) {
this.text = text;
this.send = function() {
alert(text);
}();
}
var testMessage = new Message("Hello Goodbye");
发送方法在您使用 ()
调用它时准确运行 - 检查您的控制流。
在第一种情况下,您在 Message 的原型属性上定义了一个函数,然后调用它。它警告未定义,因为 Message.prototype(this
在该上下文中)不包含文本属性。
在第二种情况下,您在调用 send
之前将 text
添加到 this
,从而在警报运行时定义它。