中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在JavaScript中使用hasOwnProperty()方法對屬性進行檢測

發布時間:2021-01-29 14:38:34 來源:億速云 閱讀:155 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在JavaScript中使用hasOwnProperty()方法對屬性進行檢測,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

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

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

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

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

hasOwnProperty() 的語法格式如下:

object.hasOwnProperty(propertyName);

參數說明:propertyName 參數表示要檢測的屬性名稱。

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

示例1

針對上面的自定義類型,可以實例化對象,然后判定當前對象調用的屬性 name 是什么類型。

var f = new F(); //實例化對象
console.log(f.hasOwnProperty("name")); //返回true,說明當前調用的 name是自有屬性
console.log(f.name); //返回字符串“自有屬性”

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

示例2

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

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() 方法只能判斷指定對象中是否包含指定名稱的屬性,無法檢查對象原型鏈中是否包含某個屬性,所以能夠檢測出來的屬性必須是對象成員。

示例3

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

var o = { //對象直接量
  o1 : { //子對象直接量
    o2 : { //孫子對象直接量
      name : 1 //孫子對象直接量的屬性
    }
  }
};
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的自有屬性

關于如何在JavaScript中使用hasOwnProperty()方法對屬性進行檢測就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

木兰县| 嘉峪关市| 吉林市| 景德镇市| 凤台县| 武城县| 双辽市| 金昌市| 定西市| 新巴尔虎左旗| 阿克苏市| 孙吴县| 临颍县| 静宁县| 黎川县| 阳西县| 工布江达县| 珲春市| 临桂县| 潮州市| 巴东县| 重庆市| 噶尔县| 金阳县| 昂仁县| 禄丰县| 孟津县| 靖西县| 石城县| 宁武县| 廊坊市| 长白| 潮州市| 福州市| 平泉县| 剑河县| 宝丰县| 镇远县| 怀仁县| 信宜市| 若羌县|