hasOwnProperty.call
是 JavaScript 中的一个方法,用于检查一个对象是否拥有特定的自身(非继承)属性。hasOwnProperty
是对象实例的方法,如果对象拥有指定的自有属性,它返回 true
,否则返回 false
。call
方法可以改变 this
的指向,这里是指向 obj
对象,然后检查 prop
是否为 obj
的自有属性。
例子代码:
javascriptfunction hasProperty(obj, prop) {
return obj.hasOwnProperty(prop);
}
const object = {
test: 123
};
console.log(hasProperty(object, 'test')); // 输出: true
console.log(hasProperty(object, 'toString')); // 输出: false
如果你想使用 call
方法来替代直接调用 hasOwnProperty
,可以这样写:
javascriptfunction hasProperty(obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop);
}
const object = {
test: 123
};
console.log(hasProperty(object, 'test')); // 输出: true
console.log(hasProperty(object, 'toString')); // 输出: false
这两种方法的结果是一样的,但第二种方法使用了 call
来改变 hasOwnProperty
内部的 this
指向,使其指向 obj
对象。这样做可以让你在没有实例化对象的情况下,或者想要检查某个对象是否拥有特定属性时使用 hasOwnProperty
。