Показать сообщение отдельно
  #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?
Ответить с цитированием