![](/img/trans.png)
[英]I am getting: Cannot call method 'someMethodName' of undefined when trying to access an object in a javascript clas
[英]during prototypal inheritance in js, i am getting undefined when i am trying to access the method of inherited object
var animal = {eats:true};
var rabbit = {jumps:true};
rabbit.prototype = animal;
document.write(rabbit.eats);
我正在嘗試原型繼承,但這給出了未定義的答案,而應該是真的。 我是在 IE9 上做的
prototype
是在類上定義的引用對象,而不是 JavaScript 中的對象,您需要定義一個類並使用prototype
設置繼承:
var animal = {eats:true};
function Rabit(){};
Rabit.prototype = animal;
Rabit.prototype.jumps = true;
var rabit = new Rabit();
rabit.jumps; // true
rabit.eats; // true
或者將兩個實體都定義為類會更好:
function Animal(){};
Animal.prototype.eats = true;
function Rabit(){};
Rabit.prototype = new Animal();
Rabit.prototype.jumps = true;
var rabit = new Rabit();
rabit.jumps; // true
rabit.eats; // true
在 Gecko 瀏覽器中有一個未記錄的__proto__
對象,比如谷歌瀏覽器,它遲到了你愚弄原型鏈並從另一個靜態繼承一個對象:
var animal = {eats:true};
var rabbit = {jumps:true};
rabbit.__proto__ = animal;
rabit.jumps; // true
rabit.eats; // true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.