少了一个 "};"吧?更正如下:
if (typeof Object.create !== 'function') {
Object.create = function (o) {
var F = function () {};
F.prototype = o;
return new F();
};
};
var another_stooge = Object.create(stooge);
解释如下:
typeof 的优先级比 !==高。参考:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence然后,Object如果没有create属性,则Object.create为undefined.
再者,Function实例的typeof 返回"function"
因此,这段代码的意思是如果Object的create属性不是一个funciton,那么我们就给它赋予一个。其创建一个新对象,并继承传入的o。
【 在 saynothing (止语) 的大作中提到: 】
: if (typeof Object.create !== 'function') {
: Object.create = function (o) {
: var F = function () {};
: ...................
--
FROM 183.95.135.*