2016-11-24 6 views
-1

Я новичок в javascript, и я не понимаю, почему «это» используется в качестве параметра наряду с фактическим параметром для вызова прототипа ... В представленном изображении вы можете увидеть пример его использования. Так почему же нужно добавить 'this' в качестве параметра? Что он делает точно?Почему «this» используется в javascript при объявлении функции для ссылки на унаследованный параметр?

'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 (в свободном режиме), ни один из которых не является желаемым результатом.

Подробнее: