这两种方法有什么区别?
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/
谢谢:)
答案 0 :(得分:3)
methodA
不是方法,因为new
运算符会导致后面的函数被调用为构造函数。因此,您将使用匿名函数返回methodA
的对象作为其类的等效函数。
就好像你写了这个:
var MethodA = function() {
alert('a');
};
this.methodA = new MethodA;
最后一行与此相同:
this.methodA = new MethodA();
答案 1 :(得分:0)
New用于创建对象的函数。这些函数是构造函数。 当 function 创建函数时, new function 会创建对象。 当您使用匿名函数时,您创建一个类型为“对象”的对象。指定构造函数的名称时,可以创建该类型的对象:例如
function Human(){};
man=new Human();
man 属于“人类”,或者更好是人类的一个实例:
man instanceof Human