在modenizer中检查hasownproperty中的undefined

时间:2015-07-17 07:09:03

标签: javascript

我刚刚通过modenizers自己的hasownproperty函数版本,并遇到了以下脚本:

_hasOwnProperty = ({}).hasOwnProperty, hasOwnProp;

if ( !is(_hasOwnProperty, 'undefined') && !is(_hasOwnProperty.call, 'undefined') ) {
  hasOwnProp = function (object, property) {
    return _hasOwnProperty.call(object, property);
  };
}
else {
  hasOwnProp = function (object, property) {
    // DIFF what below  line means I.E. object.constructor.prototype[property] ask J
    return ((property in object) && is(object.constructor.prototype[property], 'undefined'));
  };
}

如果你查看了secound hasOwnProp函数,你会在里面看到以下内容:

is(object.constructor.prototype[property], 'undefined')

在现代化程序中,条件的定义是这样的:

function is( obj, type ) {
        return typeof obj === type;
    }

但我不明白的是这个检查,如下所示:

is(object.constructor.prototype[property], 'undefined');

为什么在属性的构造函数上检查undefined?这是什么感觉?谁能解释一下?

0 个答案:

没有答案