function myFunction(messager) {
this.message = messager;
}
new myFunction("Hello");
document.write(myFunction.message);
答案 0 :(得分:4)
您试图引用函数对象本身的一个成员,这是完全错误的。
将this
与new
关键字结合使用时,this
将引用从构造函数隐式返回的对象实例。
此代码应该有效:
function myFunction(messager) {
this.message = messager;
}
var obj = new myFunction("Hello");
document.write(obj.message);
您还可以使用prototype
成员将成员函数和变量扩充到创建的对象上:
myFunction.prototype.doSomething = function() {
alert('Hello ' + this.message);
}
obj.doSomething(); //alerts "Hello Hello"
答案 1 :(得分:4)
您需要创建一个新实例并使用它:
function myFunction(messager)
{
this.message = messager;
}
var mf = new myFunction("Hello");
document.write(mf.message);
答案 2 :(得分:3)
new
关键字会导致this
引用对象的实例,而不会引用构造函数。
function myFunction(messager) {
this.message = messager;
}
var instance = new myFunction("Hello");
document.write(instance.message);
答案 3 :(得分:0)
已经有了很好的答案,所以我只提供一个简单的答案。此代码创建一个实例,但不将其存储在任何位置:
new myFunction("Hello");