为什么';这段javascript代码不能工作吗?

为什么';这段javascript代码不能工作吗?,javascript,Javascript,new关键字会导致此引用对象的实例,而不是构造函数 function myFunction(messager) { this.message = messager; } new myFunction("Hello"); document.write(myFunction.message); new关键字会导致此引用对象的实例,而不是构造函数 function myFunction(messager) { this.message = messager; } new myFunc

new
关键字会导致
引用对象的实例,而不是构造函数

function myFunction(messager) {
    this.message = messager;
}
new myFunction("Hello");
document.write(myFunction.message);

new
关键字会导致
引用对象的实例,而不是构造函数

function myFunction(messager) {
    this.message = messager;
}
new myFunction("Hello");
document.write(myFunction.message);

您试图引用函数对象本身的一个成员,这是完全错误的

当将
this
new
关键字结合使用时,
this
将引用构造函数隐式返回的对象实例

此代码应适用于:

function myFunction(messager) {
    this.message = messager;
}
var instance = new myFunction("Hello");
document.write(instance.message);
您还可以使用
prototype
成员将成员函数和变量扩充到创建的对象上:

function myFunction(messager) {
    this.message = messager;
}
var obj = new myFunction("Hello");
document.write(obj.message);

您试图引用函数对象本身的一个成员,这是完全错误的

当将
this
new
关键字结合使用时,
this
将引用构造函数隐式返回的对象实例

此代码应适用于:

function myFunction(messager) {
    this.message = messager;
}
var instance = new myFunction("Hello");
document.write(instance.message);
您还可以使用
prototype
成员将成员函数和变量扩充到创建的对象上:

function myFunction(messager) {
    this.message = messager;
}
var obj = new myFunction("Hello");
document.write(obj.message);

您需要创建一个新实例并使用它:

myFunction.prototype.doSomething = function() {
   alert('Hello ' + this.message);
}

obj.doSomething(); //alerts "Hello Hello"

您需要创建一个新实例并使用它:

myFunction.prototype.doSomething = function() {
   alert('Hello ' + this.message);
}

obj.doSomething(); //alerts "Hello Hello"

已经有很好的答案了,所以我只提供一个简单的答案。此代码创建实例,但不将其存储在任何位置:

function myFunction(messager)
{
    this.message = messager;
}

var mf = new myFunction("Hello");
document.write(mf.message);

已经有很好的答案了,所以我只提供一个简单的答案。此代码创建实例,但不将其存储在任何位置:

function myFunction(messager)
{
    this.message = messager;
}

var mf = new myFunction("Hello");
document.write(mf.message);

myFunction.message
如果您编写
myFunction.message='Hello'
而不是
new….
,则该消息将起作用。但是这样做真的没有意义。
myFunction.message
如果你写
myFunction.message='Hello'
而不是
new….
。但这样做真的没有意义。