【发布时间】:2013-07-12 19:45:53
【问题描述】:
我想要一个“静态”方法“create”,它在我的 JavaScript 代码中返回一个“类”的新实例。
在 PHP 中我会这样做:
abstract class Object {
public static function create() {
return new static;
}
}
class Foo extends Object { }
$foo = Foo::create();
在 JavaScript 中我有:
var Object = function() { };
var Foo = function() { };
Foo.prototype = new Object;
我希望能够做到:
var foo = Foo.create();
有可能吗?如果是,我应该添加什么?
感谢您的帮助。
【问题讨论】:
-
对象可能已被保留,但假设这只是示例。
-
@JonathanLonowski: Boolean 不是继承自 Object,它继承自 Object.prototype,这是一个完全不同的对象...
-
是的,但是object也不继承自Object,它们继承自Object.prototype,这不一样。对象有很多静态方法,比如没有出现在对象上的 keys()...
-
@JonathanLonowski:我同意这一点,但不同意支持它的不正确陈述。这东西有点令人困惑,可能是因为 JS 中没有足够的保留字来像其他语言那样具体说明模式......
标签: php javascript class inheritance static