假设我有一个对象X定义为
var X = function () {};
X.prototype.doSomething = function () {};
X.prototype.doSomethingElse = function () {};
是否有可能构造一个函数 ?请注意,我也必须能够没有.ff instanceof Xf()TypeError
在 Mozilla 中,我可以做我想做的事__proto__:
var f = function () {};
f.__proto__ = new X;
但是,这是 (1) 非标准和 (2) 已弃用的。MDN 的页面__proto__建议Object.getPrototypeOf改用,但我真正想要的是一个Object.setPrototypeOf(它不存在,尽管这个想法是在这个错误报告中提出的)。
我想要的一个便宜的近似值是
var f = function () {};
jQuery.extend(f, new X);
不幸的是,这并不f instanceof X成立(我也不希望它成为现实!)。