Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
набор тестов не имеет доступа к приватным функциям, спрятанным в замыкания, а значит и не может их протестировать
function DataStore(){
this.data = [];
this.push = function (item) {
this.data.push(item);
};
this.pop = function() {
return this.data.pop();
};
this.length = function() {
return this.data.length;
}
}
var dataStore = new DataStore();this.data делаем var data. Мне тоже стало непонятно, почему бы не использовать new для создания нового экземпляра.var data у нас разве не получится static-переменная, вместо поля нового экземпляра? (в терминологии не силен, но надеюсь, что понятно объяснил).function Foo () {
var bar = [];
this.push = function (val) {
bar.push(val);
};
this.get = function () {
return bar;
};
};
var a = new Foo();
var b = new Foo();
a.push(1);
a.push(2);
b.push(3);
a.get(); // [1, 2]
b.get(); // [3]
_methodName магически защитит его от «публичного» использования.//...
var
privateMethods = {
// Private methods
},
finalObject = {
// Public methods
};
return env.isTest() ? underscore.extend(finalObject, privateMethods) : finalObject;
_methodName.Избегайте создания приватных свойств с помощью замыканий
Пишем тестопригодный javascript