hasOwnProperty:是用来判断一个对象是否有你给出名称的属性或对象,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。
isPrototypeOf是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。
in 操作检查对象中是否有名为 property 的属性。也可以检查对象的原型,判断该属性是否为原型链的一部分.
hasOwnProperty:
var obj = {a:1,b:2}
obj.hasOwnProperty('a')
isPrototypeOf:
function F(){}
var fn = new F()
F.prototype.isPrototypeOf(fn)
前者是判断对象中是否存在某个属性,后者是判断对象是否是原型链的对象。
那么isPrototypeO与instanceof又有什么区别?
function A () {
this.a = 1;
}
function B () {
this.b = 2;
}
B.prototype = new A();
B.prototype.constructor = B;
function C () {
this.c = 3;
}
C.prototype = new B();
C.prototype.constructor = C;
var c = new C();
// instanceof expects a constructor function
c instanceof A; // true
c instanceof B; // true
c instanceof C; // true
// isPrototypeOf, can be used on any object
A.prototype.isPrototypeOf(c); // true
B.prototype.isPrototypeOf(c); // true
C.prototype.isPrototypeOf(c); // true
一段英文说明:
The difference between both is what they are, and how you use them, e.g. the isPrototypeOf is a function available on the Object.prototype object, it lets you test if an specific object is in the prototype chain of another, since this method is defined on Object.prototype, it is be available for all objects.
instanceof is an operator and it expects two operands, an object and a Constructor function, it will test if the passed function prototype property exists on the chain of the object (via the [[HasInstance]](V) internal operation, available only in Function objects).
[color=blue]
再来看代码:
var a = [];
Array.prototype.isPrototypeOf(a) //true
a instanceof Array //true
明显却别是:instanceof是一个操作符。isPrototypeOf是一个函数。[/color]
分享到:
相关推荐
而hasOwnProperty和isPrototypeOf方法是与这两个概念紧密相关的两个非常重要的方法。接下来,我们将详细解释这两个方法的含义、用法和相关知识点。 首先,让我们来看一下hasOwnProperty方法。hasOwnProperty是...
hasOwnProperty()和isPrototypeOf()这两个属性都是Object.prototype所提供:Object.prototype.hasOwnProperty()和Object.prototype.isPropertyOf(),下面给大家介绍这两个属性的方法和使用,一起看下吧
在JavaScript中,isPrototypeOf和hasOwnProperty是两个用于判断对象属性和原型链的重要方法。它们在处理对象属性的检查时各有侧重点,对于开发者来说,理解和掌握它们的区别对于提高代码的健壮性和性能都至关重要。 ...
JavaScript中的`hasOwnProperty()`, `propertyIsEnumerable()`和`isPrototypeOf()`是三个非常重要的对象属性和方法,它们在处理和检查对象属性时起到关键作用。接下来我们将深入理解这三个概念。 ### 1. `...
因此,Object类型的属性和方法,如Constructor、hasOwnProperty、isPrototypeOf、toLocaleString、toString和valueOf,也适用于所有其他对象实例。 `Constructor`属性保存了创建对象的函数,这对于追踪对象的来源和...
在JavaScript中,`hasOwnProperty()`是一个...同时,`Object`对象还有其他一些方法,如`isPrototypeOf()`, `propertyIsEnumerable()`, `toString()`, 和`valueOf()`等,它们共同构成了JavaScript中处理对象的基本工具。
要理解JS中的prototype, 首先必须弄清楚... // [constructor, toString, toLocaleString, valueOf, hasOwnProperty, isPrototypeOf, // propertyIsEnumerable, __defineGetter__, __lookupGetter__, __defineSetter__,
包括对象创建(字面量、构造函数、Object.create)、原型属性(__proto__、prototype)、原型方法(hasOwnProperty、isPrototypeOf、toString等)、继承机制(原型链、call、apply、bind、class语法)。 3. **数组...
Object类提供了多种属性和方法,如Prototype属性、Constructor属性、HasOwnProperty方法、IsPrototypeOf方法、PropertyIsEnumerable方法、ToString方法和ValueOf方法等。这些属性和方法定义了对象的基本行为和内存中...
hasOwnProperty 方法可以和 for..in 结合起来猎取对象自己的 key。 3. isPrototypeOf(Object)方法 isPrototype 方法接收一个对象,用来推断当前对象是否在传入的参数对象的原型链上。 ``` function MyObject() {}...
2. hasOwnProperty: hasOwnProperty用于判断某一个属性到底是本地属性,还是继承自prototype对象的属性。 对象的冒充和克隆 对象的冒充和克隆是面向对象编程中的一些重要概念: 1. Object.create(): Object....
每个对象都有属性和方法,如Object类中的Constructor、Prototype、HasOwnProperty()、IsPrototypeOf()、PropertyIsEnumerable()、ToString()和ValueOf()等。Boolean类的valueOf()方法返回原始的布尔值,建议直接使用...
这里需要注意的是,`Object.prototype.isPrototypeOf()`和`Object.isPrototypeOf()`的区别。前者是检查`Object.prototype`是否在对象的原型链上,而后者则是检查`Object`构造函数是否是对象的构造函数。 以上就是...
在JavaScript中,哈希映射(HashMap)是一种数据结构,用于高效地存储和检索键值对。虽然JavaScript的内置对象`Object`可以被用来模拟哈希映射的行为,但它并不是一个标准的哈希表,因此可能会导致一些潜在问题。...
获取对象的所有属性键,包括不可枚举和继承的 像一样,但是遍历原型链。 安装 $ npm install all-keys 用法 import allKeys from 'all-keys' ; Object . getOwnPropertyNames ( Symbol . prototype ) ; /* [ '...
JavaScript 中的对象是非常重要的概念,它提供了许多实用的函数方法来操作和处理对象。下面我们将介绍一些常用的对象函数方法。 Object.create() Object.create() 方法用于创建一个新的对象,该对象的原型将被设置...
此外,`Prototype`还涉及到`hasOwnProperty()`方法和`isPrototypeOf()`方法。`hasOwnProperty()`用于检查对象自身(非原型链)是否包含某个属性,而`isPrototypeOf()`则用来判断一个对象是否在另一个对象的原型链上...