国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript檢測實例屬性, 原型屬性

2019-11-20 13:13:49
字體:
來源:轉載
供稿:網友

0.前提

JavaScript對象的屬性分為兩種存在形態. 一種是存在實例中, 另一是存在原型對象中.

根據上述, 檢測屬性的時候會出現4種情況

既不存在實例中, 也不存在原型對象中
存在實例中, 不存在原型對象中
不存在實例中, 存在原型對象中
既存在實例中, 也存在原型對象中

1.hasOwnPrototype()

hasOwnPrototype()接受一個字符串格式的屬性名稱, 如果實例本身存在該屬性(情況2/情況4), 返回true. 否則, 返回false(情況1/情況3).

復制代碼 代碼如下:

functino Person() {}
Person.prototype.name = 'apple';
var person1 = new Person();
var person2 = new Person();
person1.name = 'banana';
console.log(person1.hasOwnPrototype(name));  //true
console.log(person2.hasOwnPrototype(name));  //false

2.in操作符

in操作符無論屬性是存在實例本身中, 還是原型對象中, 就會返回true(情況2/情況3/情況4); 否則, 返回false(情況1).

復制代碼 代碼如下:

console.log('name' in person1);  //true
console.log('name' in person2);  //true

3.檢測存在原型的屬性

結合in操作符和hasOwnProperty()就可以自定義函數來檢測原型中是否存在給定的屬性.

復制代碼 代碼如下:

function hasPrototypeProperty(object, name) {
     return !object.hasOwnPrototype(name) && (name in object);
}
console.log(hasPrototypeProperty(person1, 'name')); //false
console.log(hasPrototypeProperty(person2, 'name')); //true

原型中存在給定屬性, 返回true(情況3). 否則返回false(情況1/情況2/情況4).

以上就是本文的全部內容了,希望大家能夠喜歡

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 垦利县| 唐河县| 新巴尔虎右旗| 金门县| 马边| 高淳县| 台中市| 全州县| 泸西县| 专栏| 库尔勒市| 西丰县| 迁西县| 正蓝旗| 庆元县| 莒南县| 云安县| 永康市| 锡林郭勒盟| 若尔盖县| 莆田市| 治多县| 上饶市| 克拉玛依市| 那坡县| 阿克陶县| 五常市| 榆树市| 凤阳县| 德格县| 改则县| 裕民县| 周至县| 古蔺县| 和平县| 富蕴县| 吴江市| 伊川县| 岳池县| 青海省| 朝阳区|