Javascript 获取原型链中的查找数?

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

我们可以获取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

您可以为此创建一个函数

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:是的,看起来好一点。