只需使用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。