Поддержка в браузерах, способы эмуляции, новые возможности. Про все это и многое другое в деталях
Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://meetup.gorodvitebsk.by/.
4. Контексты
var x = 9;
var module = {
x: 81,
getX: function() { return this.x; }
};
module.getX(); // 81
var getX = module.getX;
getX(); // 9; "this" refers to the global object
5. Передача контекста
1. Call
var x = 9;
var module = {
x: 81,
getX.call(module, arg1, arg2)
2. Apply
getX: function() {
return this.x;
}
3. Замыкания
getX.apply(module, [arg1, arg2])
};
var getX = module.getX;
6. Замыкания
var module = function(){
var x = 81;
return {
getX: function(){return x;}
}
}();
var getX = module.getX;
getX(); // 81
7. ES 5-way
var x = 9;
var module = {
x: 81,
getX: function() { return this.x; }
};
var getX = module.getX.bind(module);
Почему мы так не делаем?
8. ES5. Что нового?
Работа со свойствами
Object.create Object.keys
Object.seal
Object.freeze
Function.bind
Strict mode
Getter, Setter Immutable undefined
Object.getPrototypeOf JSON