2014-05-01 24 views
0

這樣的想法是創建一個類動物和屬性以它作爲一個新的對象創建類,並呼籲它的屬性(JavaScript)的

以下是我有:

var name; 
var type; 
function Animal(name,type){ 
    this.type = type, 
    this.name = name, 
    toString = function(){return this.name + "is a " + this.type;} 
}; 

var cat = new Animal('Max','cat'); 
cat.type; 

每次我運行它 - 我似乎在toString部分失敗了?相當新,並試圖瞭解這一點 - 有什麼我失蹤?

+0

你不需要聲明這些頂層變量,參數應該是函數本地的。 – elclanrs

回答

0
function Animal(name, type) { 
    this.type = type; 
    this.name = name; 
}; 

Animal.prototype.toString = function() { 
    return this.name + "is a " + this.type; 
} 

var cat = new Animal('Max', 'cat'); 
console.log(cat); // Prints "Max is a cat" 
1

你不需要聲明那些頂層變量,參數應該是函數的本地參數。語法也是錯誤的,您應該使用分號而不是逗號,並且toString因爲您忘記使用var而成爲全局變量。

你想要的是this.toString所以this作品中,指的是實例,或者更好的是,創造這樣它的可重複使用的prototype的方法爲Animal所有實例:

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

Animal.prototype.toString = function() { 
    return this.name + "is a " + this.type; 
};