【发布时间】:2012-01-03 03:21:08
【问题描述】:
我正在学习面向对象的 Java 脚本。我有以下工厂方法的代码。
function Foo() {
var value = 1;
return {
method: function() {
return value;
},
value:value
}
}
Foo.prototype = {
bar: function() {}
};
new Foo();
Foo();
方法 Foo 可以通过两种方式调用。 new Foo(); 或 Foo(); 两者都做同样的事情并且输出是相同的。 java脚本处理的实际区别是什么?
【问题讨论】:
-
请注意,如果您要从
Foo()函数返回您自己的对象,而不是使用 JS 为您创建的对象,当您说new Foo()时,设置Foo.prototype = {something}是没有意义的。 -
@Bakudan - 从任何合理的术语定义来看,JavaScript 都是面向对象的。
-
@Bakudan,如果您有话要说(面向对象与基于对象),请在新答案中用示例证明它的合理性。它将帮助新手:)
-
@onemach,你可以贡献答案,而不是拼写错误:)
-
可能不值得自己回答,但请注意
new Foo不会有属性bar。使用new时,如果不返回对象,则返回Foo.prototype。由于您在每次调用中都创建了一个对象字面量,因此它会被返回。
标签: javascript