Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2017, 17:45
Новичок на форуме
Отправить личное сообщение для nikel Посмотреть профиль Найти все сообщения от nikel
 
Регистрация: 29.05.2017
Сообщений: 2

Зачем нужно "var self = this"
Изучаю Knockout, и в примерах начал встречать использование конструкции "var self = this" в функциях-конструкторах.
'use strict'
function WebmailViewModel() {
    // Data
    var self = this;
    self.prop1 = "prop1";
    self.prop2 = "prop2";
    self.prop3 = "prop3";
};

function NewWebmailViewModel() {
    // Data
    this.prop1 = "prop1";
    this.prop2 = "prop2";
    this.prop3 = "prop3";
};


var mailOne = new WebmailViewModel();
var mailTwo = new NewWebmailViewModel();

console.log(mailOne == mailTwo); //false

for (var key in mailOne) {
	console.log(mailOne[key] === mailTwo[key]) //true true true
};


В примере видно, что объекты, создаваемые на основе конструкторов, разумеется, разные, но при этом их свойства идентичны. В чем тогда смысл использования self?
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2017, 18:08
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

nikel, в данном случае - смысла нет. А вообще такое нужно, чтобы использовать основной контекст внутри вложенной функции.

function Abc() {
    var self = this;

    console.log(this); // Abc

    var fn = function() {
         console.log(this); // Window
         console.log(self); // Abc
    };

    fn();
}

new Abc();
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2017, 18:12
Новичок на форуме
Отправить личное сообщение для nikel Посмотреть профиль Найти все сообщения от nikel
 
Регистрация: 29.05.2017
Сообщений: 2

Спасибо за простой и понятный ответ.
Ответить с цитированием
  #4 (permalink)  
Старый 29.05.2017, 21:20
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Спасибо) магия )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно написать фейк с элементами js в vk totcam Работа 3 27.10.2017 14:42
нужно написать скрипт редиректа ngprog Работа 1 20.01.2011 08:15
Нужно описать как работают два java script'a Smoke332 Общие вопросы Javascript 8 26.09.2010 16:13
Нужно обяснить мне на счет ІР RaS Оффтопик 9 05.07.2010 17:39
нужно создать много копий div ASM29A Элементы интерфейса 3 27.03.2010 20:22