我们可以获得object3.x的查找计数吗?
首先 - 看看拥有的财产 - 没有x
第二 - 查看object3的原型对象 - > object2 - no x
第三 - 研究object2的原型对象 - >对象1 - x已定义 - 是
object1 = {x:1};
object2 = Object.create(object1);
object2.y = 2;
object3 = Object.create(object2);
object3.z = 3;
object1.x; // lookup count = 1
object2.x; // lookup count = 2
object3.x; // lookup count = 3
答案 0 :(得分:3)
你可以为此目的创建一个函数......
function prop_depth(obj, p) {
var count = 1;
while(obj && !obj.hasOwnProperty(p)) {
obj = Object.getPrototypeOf(obj);
count++;
}
return obj ? count : -1;
}
prop_depth(object1,'x'); // lookup count = 1
prop_depth(object2,'x'); // lookup count = 2
prop_depth(object3,'x'); // lookup count = 3