2016-11-24 28 views
-1

我是javascript新手,我不明白爲什麼'this'被用作調用原型的實際參數旁邊的參數...在提供的圖像中,您可以看到它的使用示例。 那麼爲什麼需要添加'this'作爲參數呢?它究竟做了什麼?爲什麼在JavaScript中使用'this'時聲明瞭引用繼承參數的函數?

'use strict'; 
function Animal(voice){ 
this.voice = voice || 'grunt' 
} 

Animal.prototype.speak = function(){ 
display(this.voice) 
} 

function Cat(name, color){ 
Animal.call(this, 'Meow') 
this.name = name 
this.color = color 
} 

Cat.prototype = Object.create(Animal.prototype) 

var Fluffy = new Cat('Fluffy', 'White') 

Fluffy.speak() 

enter image description here

+6

不顯示**圖片**代碼。顯示代碼。更多:meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557 –

+0

如果您包含在你啓動函數的HTML代碼中調用它將有助於以最可靠的方式回答你的問題:) – amyloula

+0

調用和應用是一種傳遞函數被調用的引用的方法,它設置調用引用 –

回答

4

Animal.call(this, 'Meow'); 

...使用,以便調用Animal內,this將把它指的是Cat內同樣的事情,讓Animal套在同一個實例上提供它的實例屬性。如果你只是做了Animal('Meow'),當Animal寫到this.voice,它會拋出一個錯誤(在嚴格模式下)或者添加一個名爲voice的全局變量(鬆散模式),這兩者都不是期望的結果。

更多:

相關問題