我见过很多这个......
function myObject(data) {
var myData = data;
}
myObject.prototype.doSomething = function () {
alert("I did something!");
}
但Visual Studio上的intellisense给了我一个函数的.constructor,这会让我相信这是正确的......
function myObject() {
var myData;
this.constructor = function(data) {
myData = data;
}
this.doSomething = function() {
alert("I did something!");
}
}
我喜欢第二种方法的封装,但几乎每个人都使用“.prototype”。 是否有任何理由特别这样做,或者可以封装所有这样的类方法。
答案 0 :(得分:4)
看看:
答案 1 :(得分:3)
这根本不是constructor
所做的。它只是返回功能。所以在你的情况下,它会返回myObject
。例如:
function someObject() {
this.a = 5;
}
var obj = new someObject();
obj.constructor; // Would return someObject
有关constructor
属性的详细信息,请参阅this。
使用prototype
的关键是你可以在构造函数创建后扩展它们。因此,您可以使用它来为所有String对象添加方法。
String.prototype.myFunc = function(){/*Some code*/};