国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

JS hasOwnProperty()方法檢測(cè)一個(gè)屬性是否是對(duì)象的自有屬性的方法

瀏覽:125日期:2024-04-06 11:57:27

JavaScript hasOwnProperty() 方法是 Object 的原型方法(也稱實(shí)例方法),它定義在 Object.prototype 對(duì)象之上,所有 Object 的實(shí)例對(duì)象都會(huì)繼承 hasOwnProperty() 方法。

hasOwnProperty() 方法用來檢測(cè)一個(gè)屬性是否是對(duì)象的自有屬性,而不是從原型鏈繼承的。如果該屬性是自有屬性,那么返回 true,否則返回 false。換句話說,hasOwnProperty() 方法不會(huì)檢測(cè)對(duì)象的原型鏈,只會(huì)檢測(cè)當(dāng)前對(duì)象本身,只有當(dāng)前對(duì)象本身存在該屬性時(shí)才返回 true。

例如,在下面自定義類型中,this.name 就表示對(duì)象的自有屬性,而原型對(duì)象中的 name 屬性就是繼承屬性。

function F() { //自定義數(shù)據(jù)類型 this.name = '自有屬性';}F.prototype.name = '繼承屬性';

hasOwnProperty() 的語法格式如下:

object.hasOwnProperty(propertyName);

參數(shù)說明:propertyName 參數(shù)表示要檢測(cè)的屬性名稱。

返回值:返回一個(gè)布爾值。如果 propertyName 是自有屬性,那么返回 true,否則返回 false。

示例1

針對(duì)上面的自定義類型,可以實(shí)例化對(duì)象,然后判定當(dāng)前對(duì)象調(diào)用的屬性 name 是什么類型。

var f = new F(); //實(shí)例化對(duì)象console.log(f.hasOwnProperty('name')); //返回true,說明當(dāng)前調(diào)用的 name是自有屬性console.log(f.name); //返回字符串“自有屬性”

凡是構(gòu)造函數(shù)的原型屬性(原型對(duì)象包含的屬性),都是繼承屬性,使用 hasOwnProperty() 方法檢測(cè)時(shí),都會(huì)返回 false。但是,對(duì)于原型對(duì)象本身來說,這些原型屬性又是原型對(duì)象的自有屬性,所以返回值又是 true。

示例2

在下面示例中,演示了 toString() 方法對(duì)于 Date 對(duì)象來說是繼承屬性,但是對(duì)于 Date 構(gòu)造函數(shù)的原型對(duì)象來說,則是它的自有屬性。

var d = Date;console.log(d.hasOwnProperty('toString')); //返回false,說明toString()是Date的自有屬性var d = Date.prototype;console.log(d.hasOwnProperty('toString')); //返回true,說明toString()是Date.prototype屬性

hasOwnProperty() 方法只能判斷指定對(duì)象中是否包含指定名稱的屬性,無法檢查對(duì)象原型鏈中是否包含某個(gè)屬性,所以能夠檢測(cè)出來的屬性必須是對(duì)象成員。

示例3

下面示例演示了 hasOwnProperty() 方法所能檢測(cè)的屬性范圍。

var o = { //對(duì)象直接量 o1 : { //子對(duì)象直接量 o2 : { //孫子對(duì)象直接量 name : 1 //孫子對(duì)象直接量的屬性 } }};console.log(o.hasOwnProperty('o1')); //返回true,說明o1是o的自有屬性console.log(o.hasOwnProperty('o2')); //返回false,說明o2不是o的自有屬性console.log(o.o1.hasOwnProperty('o2')); //返回true,說明o2是o1的自有屬性console.log(o.o1.hasOwnProperty('name')); //返回false,說明name不是o1的自有屬性console.log(o.o1.hasOwnProperty('name')); //返回true,說明name不是o2的自有屬性

到此這篇關(guān)于JS hasOwnProperty()方法檢測(cè)一個(gè)屬性是否是對(duì)象的自有屬性的方法的文章就介紹到這了,更多相關(guān)JS hasOwnProperty 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 梁河县| 股票| 尖扎县| 南江县| 留坝县| 蒙阴县| 朝阳区| 罗山县| 扎囊县| 洱源县| 清原| 石河子市| 铁岭县| 霍山县| 宿松县| 阿图什市| 塔河县| 二连浩特市| 三明市| 横峰县| 文成县| 新巴尔虎左旗| 安塞县| 常州市| 留坝县| 中西区| 藁城市| 车险| 乌拉特中旗| 祁门县| 梁山县| 鄂托克前旗| 枣阳市| 京山县| 正蓝旗| 五原县| 武冈市| 全州县| 乳山市| 县级市| 乌兰浩特市|