Objectの組込みプロパティlengthを使用する際、Object.keysを使用しなければいけない理由は?
Objectの組込みプロパティlengthはなぜ、obj.length;で使用できないのでしょうか?
・常に1だから?
・対象はユーザ定義オブジェクトではないのでしょうか?
var obj = { k: 1 };
obj.length; //undefined
Object.keysで取得できるということは、組込みプロパティlengthは列挙不可に設定されているのでしょうか?
var obj = { k: 1 };
Object.keys(obj).length; //1
in演算子で確認できると思ったのですが
・in演算子は組込みプロパティには未対応なのでしょうか?
var obj = { k: 1 };
"length" in obj; //false
var obj = { k: 1 };
length in obj; //false
組込みプロパティlengthは、どこに所属しているのでしょうか?
var obj = { k: 1 };
obj.hasOwnProperty('length'); //false
var obj = { k: 1 };
obj.k.hasOwnProperty('length'); //false
var obj = { k: 1 };
Object.getOwnPropertyNames(obj); //["k"]