2

这两种方法有什么区别?

function ObjectB() {
    this.methodA = new function() {
        alert('a');
    };
    this.methodB = function() {
        alert('b');
    };
}

我想问的是,的在 JS 方法中有什么影响?

我做了一个小提琴,我想探索方法的行为,我还添加了这段代码:

var v = Object.create(ObjectB);
v.methodC = function() {
    alert('c');
}

v.methodB();
v.methodA();
v.methodC();

但我的小提琴似乎不起作用。

小提琴在这里:http: //jsfiddle.net/N8SNG/

谢谢 :)

4

2 回答 2

3

methodA不是方法,因为new运算符导致它后面的函数作为构造函数被调用。所以你用匿名函数取回一个对象,methodA作为它的类的等价物。

就好像你写了这个:

var MethodA = function() {
    alert('a');
};
this.methodA = new MethodA;

最后一行与此相同:

this.methodA = new MethodA();
于 2013-05-03T11:54:08.830 回答
0

New 用于创建对象的函数。这些函数构造函数。当函数创建函数时,新函数创建对象。当您使用匿名函数时,您会创建一个“对象”类型的对象。当您指定构造函数的名称时,您将创建一个此类对象:例如

function Human(){};
man=new Human();

man属于“人类”类型,或者更好的是Human 的一个实例:

人类实例

于 2013-05-03T12:04:17.213 回答