【发布时间】:2012-04-26 06:44:39
【问题描述】:
我知道这不是推荐的方法,但是如果我声明以下函数,然后将它们作为构造函数调用,那么生成的对象之间会有什么区别(如果有的话)?
function Something() {
this.foo = "bar";
}
function something2() {
var that = {};
that.foo = "bar";
return that;
}
var x = new Something();
var y = new something2();
var z = something2();
即x、y 和 z 这里有什么区别?
something2 会不会是编写构造函数的更好方法,因为无论您是否使用new 都不会影响函数的结果?
顺便说一句,something2 应该在这里大写吗? (我认为不会,因为 Crockford 如此坚持大写,因为函数会破坏全局命名空间......)
【问题讨论】:
-
对克罗克福德先生有点警惕。虽然他有很多好话要说,但他确实有不同意的意见。
标签: javascript function constructor