JavaScript:如何在原型链中找到子/后代?

时间:2014-01-31 03:59:37

标签: javascript inheritance prototype

只需使用Object.getPrototypeOf()模块,即可在现代浏览器中查找JavaScript对象的原型。

是否有可用的功能使我能够类似地找到实例的直接后代?我想象一个getDescendantsOf()getInstancesOf()模块,它返回给定实例原型链中存在的所有实例?

想象一下jQuery .children()函数,除了我们改为遍历原型链而不是DOM。

在没有功能的情况下,是否有实现此目的的最佳实践?

示例:

var Cheese = function() {};

var Swiss = function() {};
Swiss.prototype = new Cheese();

var Cheddar = function() {};
Cheddar.prototype = new Cheese(); 

var Brie = function() {};
Brie.prototype = new Cheese();

var cheese = new Cheese(),
    jarlsberg = new Swiss(),
    cabotClothbound = new Cheddar(),
    brillatAffine = new Brie();

console.dir(cheese); //-> Cheese
console.dir(jarlsberg); //-> Swiss
console.dir(Object.getPrototypeOf(jarlsberg)); //-> Cheese

是否有一个函数可以返回Cheese的后代,也许是在数组中?像这样......

Object.getDescendantsOf(cheese); //-> [ Swiss, Cheddar, Brie ]?
Object.getInstancesOf(cheese); //-> [ jarlsberg, cabotClothbound, brillatAffine ]

tyvm。

0 个答案:

没有答案