javascript中的原型不能用作例外

时间:2013-09-02 07:37:54

标签: javascript oop prototype

我对javascript中的原型非常困惑。

我有这段代码:

  function Animal(name){
  this.name=name;}

  function Dog(nameA){
  this.legs=4;}

  Dog.prototype=new Animal();


 var dog=new Dog();
 alert(Object.getPrototypeOf(dog));
 alert '[object Object]'    

 alert(dog._proto_);
 //alert 'undefined'

它不应该警告'动物'两次?

4 个答案:

答案 0 :(得分:0)

您应该使用两个下划线:

alert(dog.__proto__);

有关详细信息,请参阅MDN doc。另请注意,__proto__从(当前)ECMAScript 5开始是非标准的。

答案 1 :(得分:0)

你应该使用

dog.__proto__

dog._proto_

JsFiddle http://jsfiddle.net/gaE3y/

function Animal(name){
  this.name=name;}

  function Dog(nameA){
  this.legs=4;}

  Dog.prototype=new Animal();


 var dog=new Dog();
console.log(Object.getPrototypeOf(dog));
console.log(dog.__proto__);

js小提琴中的输出是

Animal {name: undefined}
Animal {name: undefined} 

答案 2 :(得分:0)

alert调用toString()参数的方法,即传递,所以:

var anyObject = {};
alert(anyObject); //[object Object]
console.log(anyObject); // Object {}
console.log(anyObject.toString()) //"[object Object]"

使用console.log代替alert进行清晰调试。

P.S。:,是的,它是__proto__而不是_proto_

答案 3 :(得分:0)

这是访问原型的更好方法。 这是一种标准方式。

dog.constructor.prototype