hasownproperty
的作用是用來判斷乙個物件本身是否具有某個屬性或物件,物件本身的意思是指不包括它的原型鏈,個人覺得這個方法應該叫isownproperty
更合適。
isprototypeof
是用來判斷物件是否存在於另乙個物件的原型鏈中,如:
array.prototype.isprototypeof([1, 2, 3]);
幾個例子
下面幾個例子應該很好理解:
string.prototype.hasownproperty('split'); // 輸出 true
''.hasownproperty('split'); // 輸出 false
(}).hasownproperty('testfn'); // 輸出 true
更複雜一點的例子function people(name);}
people.prototype.setgender = function(gender)
;var lxa = new people('小茗同學');
lxa.age = 24;
lxa.setgender('man');
console.log(lxa.hasownproperty('name')); // true
console.log(lxa.hasownproperty('age')); // true
console.log(lxa.hasownproperty('showname')); // true
console.log(lxa.hasownproperty('gender')); // true
console.log(lxa.hasownproperty('setgender')); // false
console.log(people.prototype.hasownproperty('setgender')); // true
console.log(people.prototype.hasownproperty('gender')); // false
console.log(people.prototype.isprototypeof(lxa)); // true
//isprototypeof錯誤寫法:lxa.isprototypeof(people)
instanceof
操作符用於判斷:某個物件是否存在另外乙個要檢測物件的原型鏈上。
a instanceof b
內部判斷邏輯是:沿著a的原型鏈一直往上找,如果發現a的隱式原型和b的原型相同,那麼就返回true
。
function myinstanceof(a, b)
return false;
}myinstanceof(/1/g, regexp); // true
myinstanceof(/1/g, object); // true
myinstanceof(new date(), date); // true
js Object屬性及方法的理解
一下僅個人的理解。還是特別前調一下,因為內容中涉及大量我以為別人的想法,但或許是我人傻理解成了別人是那麼種想法 關於object,簡單的理解可以解釋為封裝物件,擁有屬性和方法。比如物件 貓,屬性 體重,方法 吃 那麼js如何定義物件兩者如何又有何區別 那麼由淺入深的來說說 一般情況下定義乙個物件 v...
js object的常用方法
1 for in 遍歷物件,返回物件的每乙個屬性 2 object.keys 遍歷物件,並返回乙個陣列,陣列的元素由物件的每個屬性構成 3 object.values 遍歷物件,並返回乙個陣列,陣列的每乙個元素由物件的屬性值組成 4 object.entries 遍歷物件,並返回乙個陣列,陣列的每乙...
js object如何獲取key值
報警處理 通過預定義的 h組 var isalarm false if calltype 3 console.log groupid 根據組號獲得組名 var aa this.homeu.pregroup console.log 根據組號獲得組名 aa var groupname aa.groupi...