1
給定一個對象具有未知數量的父級原型,並且已知可以在其中一個父級上實現的屬性名稱,找到該特定父級的最佳方法是什麼?查找提供繼承屬性的對象
例如。
var a = { x: 'foo' };
var b = {};
var c = { y: 'bar' };
var d = { z: 'baz' };
var e = {};
b.__proto__ = a;
c.__proto__ = b;
d.__proto__ = c;
e.__proto__ = d;
alert(e.y); // 'bar'
只給e
一個參考,我想找到c
,因爲它是其中e.y
值實際上來自。 (這些對象是正常創建的;本例中我僅使用__proto__
作爲說明目的。)實際上,在c
和e
之間可以有任意數量的級別。
(而如果有幫助,在現實中e
是AngularJS $scope
,取景的問題,這樣的替代方法是找到特定父範圍,提供了一個特殊的遺傳scope屬性。)
只是爲了好奇..你爲什麼在你發佈的同一時間回答你的問題?難道它不僅僅是對你的問題的編輯嗎? – developer033
似乎是一個代碼審查問題,因爲您的代碼沒有問題(推測性思維)。也可以作爲jsperf的答案。 –
我認爲你的答案也是錯誤的,__proto__是一個遺留功能,我不會使用它,有Object.getPrototypeOf(obj) – cstuncsik