2014-11-15 2 views
0

Существует ли существующий способ визуально отобразить цепочку прототипов JavaScript?Графическая цепочка прототипов

В принципе, я бы хотел увидеть дерево наследования, чтобы лучше узнать, как работает большой проект.

ответ

1

Вы можете написать простую функцию, и отправить его любой объект, чтобы увидеть его прототип цепи:

function printPrototypeChain(o,order) 
{ 
    /* 
     order is an optional parameter, you can send it "PtoC" to print the prototype chain in the Parent to Child order. The default order is Child to Parent. 
    */ 
    var a = []; 
    var t = o; 
    while(t) 
    { 
     a.push(t); 
     t = Object.getPrototypeOf(t); 
    } 
    if(order==="PtoC") 
    { 
     a.reverse(); 
    } 
    for(var i =0; i<a.length; i++) 
    { 
     console.log(a[i]); 
    } 
} 

var o = { y: 3}; 

function f(x) 
{ 
    this.x = x; 
} 

var F = new f(2); 

printPrototypeChain(F); 

--------------------------------OUTPUT----------------------------- 
f {x: 2, y: 3} 
Object {y: 3} 
Object {} 
--------------------------END OF OUTPUT---------------------------- 

printPrototypeChain(F,"PtoC"); 

--------------------------------OUTPUT----------------------------- 
Object {} 
Object {y: 3} 
f {x: 2, y: 3} 
--------------------------END OF OUTPUT----------------------------