我对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'
它不应该警告'动物'两次?
答案 0 :(得分:0)
答案 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