Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
function createHelloFunction = function(name) {
var myBigObject = createSomeBigObject();
return function() {
alert('Hello, ' + name);
}
}
var sayHelloHabrahabr = createHelloFunction('Habrahabr');
myBigObject в возвращаемой функции не используется, ссылка на него остаётся (по крайней мере покуда жив sayHelloHabrahabr).
function attach()
{
var element = document.getElementById("my-element");
element.attachEvent("onclick", function(){ alert("Clicked: " + element.innerHTML); });
}
… js — функциональный язык программирования (не путать с процедурным). Не совсем, конечно, чистый функциональный язык, но основные моменты присутствуют.
var MyModule = (function() {
var name = 'Habrahabr';
function sayPreved() {
alert('PREVED ' + name.toUpperCase());
}
return {
sayPrevedToHabrahabr: function() {
sayPreved(name);// [ 8 ]
}
}
})();
MyModule.sayPrevedToHabrahabr();function MyModule() {
var name = 'Habrahabr';
function sayPreved() {
alert('PREVED ' + name.toUpperCase());
}
this.sayPrevedToHabrahabr = function() {
sayPreved(name);
};
};
var myModule = new MyModule();
document.writeln(myModule.name); // undefined
document.writeln(myModule.sayPreved()); // Uncaught TypeError: undefined is not a function on line 15
Замыкания в JavaScript