来自道格拉斯·克罗克福德(Douglas Crockfords)的JavaScript书。
if (typeof Object.create !== 'function')
{
object.create = function(o) {
var F = function () {};
F.prototype = o;
return new F();
}
};
我的问题是 这条线有什么用?
typeof Object.create !== 'function'
谢谢。
答案 0 :(得分:0)
new function(){}
返回一个对象,默认情况下Object.create
返回一个函数。
该行可能不起作用的原因仅仅是因为Douglas Crockford的书是printed in 2008,而当时并不能保证跨平台的兼容性,这是为什么需要特定条件来确保何时访问Object.create
将按预期工作。
console.log(typeof Object.create)
console.log(typeof new function(){})
console.log(Object.create instanceof Object)
console.log(new function(){} instanceof Object)
console.log(Object.create instanceof Function)
console.log(new function(){} instanceof Function)
答案 1 :(得分:0)
这是一个比较,typeof评估值是否为给定类型(字符串,整数,函数),以便该行询问Object.create(它是一个函数)是否不等于函数。
这里的情况是Object.create确实是一个函数,因此除非将Object.craete更改为其他内容,否则条件永远不会成立。