Javascript 获取原型链中的查找数?
我们可以获取object3.x的查找计数吗 首先-查看自有财产-第x项 第二个-查看object3->object2的原型对象-no x 第三个-查看object2的原型对象->对象1-x已定义-是Javascript 获取原型链中的查找数?,javascript,Javascript,我们可以获取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 obj
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
您可以为此创建一个函数
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
var计数0代码>while(obj&&!obj.hasOwnProperty(p)&&&++count)obj=Object.getPrototypeOf(obj)代码>@qwertymk:是的,看起来好一点。