Как можно использовать ключевое слово "this" внутри сигнатуры функции для установки параметра по умолчанию?
У меня есть функция, которая привязана к компоненту React:
functionName(param1, param2 = this.state.field) {
}
Я никогда не слышал о ключевом слове "this", используемом в сигнатуре функции в Javascript, и мне интересно, будет ли контекст "this" содержать объект или глобальную область видимости. Должна ли эта функция быть привязана к соответствующему контексту, прежде чем я смогу правильно использовать " это " в подписи?
2 ответа:
Мне интересно, будет ли контекст "this" содержать объект или глобальную область видимости.Ни. Значения по умолчанию вычисляются не вне функции, а внутри вызова . Ключевое слово
this
будет указывать на то же значение, что и в теле метода-получателя вызова. Так что если функция была привязана к вашему компоненту react, то это и будетthis
.
Если функция находится в классе, расширяющем React.Класс компонента из библиотеки react. ключевое слово "this" относится к текущему объекту в контексте его класса. Например:
import React from 'react'; class example extends React.Component { this.state = { field: "this variable!" } functionName(param1, param2 = this.state.field) { console.log(param2); } }
Как вы заметили, это.state-это свойство класса example, которое просто вызывается по второму аргументу, который возвращает значение свойства поля this.государственный объект.
Если вам интересно, выполнимо это или нет. Ну, JavaScript-это многопарадигмальный язык, и если он предназначен для его использования в функциональной парадигме это определенно может быть приемлемо.