2016-10-10 6 views
0

Это из учебников knockoutjs.com.учебники для нокаутов - привязка свойств «this»?

Может ли кто-нибудь объяснить, что такое «это» в конце свойства fullName? Пожалуйста, укажите принцип работы JS здесь, чтобы я мог читать дальше, спасибо!

enter image description here

Почему свойство totalSurcharge не нужно «это» в конце?

enter image description here

ответ

3

Второй аргумент к ko.computed устанавливает значение this, когда функция для определения вычисленного значения (-х первый Arg) выполняется. В случае fullName функция использует this.firstName и this.lastName. Поэтому, когда это называется, мы хотим убедиться, что this действительно является нашей моделью просмотра.

Во втором случае была создана переменная с именем self, которая указывает на соответствующее значение this. Затем self используется внутри вычисляемой функции вместо использования this (что является динамическим). Во втором случае self мог быть помещен как второй аргумент, а затем this мог быть использован внутри функции.

Это действительно вопрос стиля. На мой взгляд, использование переменной типа self в наши дни не соответствует стилю. В конце концов, это сводится к личным предпочтениям.

Вот еще один ответ, который обсуждает this в нокаут, а также: Difference between knockout View Models declared as object literals vs functions

Хороший учебник по this в JavaScript здесь: https://derickbailey.com/email-courses/masteringthis/

+0

Theres также небольшое объяснение в Документах странице KO: HTTP: // knockoutjs. ком/документация/computedObservables.html –

Смежные вопросы