hasOwnProperty自我理解

2022-08-04 17:27:22 字數 912 閱讀 4728

暫時不考慮es6中symbol,hasownproperty()方法返回的是乙個物件上是否包含乙個指定屬性,如果含有則返回true,如果沒有則返回false。

in

運算子不同,該方法會忽略掉那些從原型鏈上繼承到的屬性。

這一特性嚐嚐用來檢測乙個物件上是否包含自身擁有的屬性,並且不是從原型鏈上繼承而來的。

如:

o = new object();

o.prop = 'exists';

function changeo()

o.hasownproperty('prop'); // 返回 true

changeo();

o.hasownproperty('prop'); // 返回 false

但有時候會出現這樣的情況,自己封裝的物件中包含同名的hasownproperty方法,這時候如果呼叫的話會直接使用自己封裝的方法,為了避免這樣的情況發生,使用下列的方式來避免這種情況:

var foo = ,

bar: 'here be dragons'

};foo.hasownproperty('bar'); // 始終返回 false

// 如果擔心這種情況,可以直接使用原型鏈上真正的 hasownproperty 方法

({}).hasownproperty.call(foo, 'bar'); // true

// 也可以使用 object 原型上的 hasownproperty 屬性

object.prototype.hasownproperty.call(foo, 'bar'); // true

常用的使用方式為:

for (var i in

man)

}

來自為知筆記(wiz)

hasOwnProperty方法用法簡介

hasownproperty表示是否有自己的屬性。這個方法會查詢乙個物件是否有某個屬性,但是不會去查詢它的原型鏈。示例var obj c console.log obj.hasownproperty a true console.log obj.hasownproperty fn true cons...

說一下JS的hasOwnProperty

for in的時候,它會把物件的屬性 包括原型的屬性 遍歷一遍 例如 有這麼一段 var array array.push 1 array.push 2 array.push 3 for var i in array 此時會輸出什麼呢?當然是0 1 1 2 2 3 但是如果在for in之前加上ar...

自增「 」和自減「 」

int x 10 int j j x 看這邊 system.out.println x int x 10 int j x x 看這邊 system.out.println x 第乙個會輸出11,第二個會輸出10。這是今天偶然看到的,而這個解釋聽起來比較容易理解 x 是乙個表示式,它的值是x,在這個表...