Непонятен синтаксис addEventListener()
1) Что означает в методе document.addEventListener() параметр function()?
2) Вопрос в комментарии //ЧТО ПРОИСХОДИТ ТУТ?
document.addEventListener('DOMContentLoaded', function () {
settings = JSON.parse(localStorage.settings);
document.getElementById('showClear').checked = settings.showClear; //значение чекбокса равно значению чекбокса showClear из функции save()
document.getElementById('showClear').addEventListener('click', save); //ЧТО ПРОИСХОДИТ ТУТ?
}
|
Цитата:
Цитата:
|
Цитата:
print=console.log.bind(console)
Event={
create: function(name){
var o=Object.create(this)
o.elements=[]
o.name=name
window[name]=o
},
add: function(el){this.elements.push(el)},
activate: function(){this.action(); this.notify()},
notify: function(){var name=this.name; this.elements.forEach(function(el){el["on"+name]()})}
}
Event.create("printWorld")
printWorld.action=function(){print("World, ")}
SomeElement={
create: function(){return Object.create(this)},
addEventListener: function(event, fnc){window[event].add(this); this["on"+event]=fnc}
}
helloElement=SomeElement.create()
helloElement.addEventListener("printWorld", function(){print("Hello!")})
goodbyeElement=SomeElement.create()
goodbyeElement.addEventListener("printWorld", function(){print("Bye!")})
printWorld.activate()
// World,
// Hello!
// Bye!
|
Цитата:
function NAME() {}
А в параметре указано просто function(). Как узнать, какая функция? |
Цитата:
function(){}
или так new Function или проcто Function() а в выражении
function NAME() {}
у Вас создается функция, на нее навешивается с-во name, в глобальном объекте создается с-во NAME, которому присваивается значение объекта созданной Вами ф-ции (проще говоря -- сама ф-ция) |
Цитата:
element.addEventLitener("event", function NAME(){})
|
Цитата:
|
Цитата:
Вообще, есть два типа функций: // функция-объявление function example() {} Тут это как некая конструкция. Объявляется функция. Как в других языках объявляется, допустим класс. // функция-выражение var example = function example() {} // это более гибкая штука. Это как любой другой тип: число, строка, объект. Оно так и есть, ибо все это и есть выражение. alert(1 + 2) // аргументом передали выражение alert(1) // аргументом тоже передали выражение, только очень простое alert(function example(){}) - аргументом передали выражение. У функции выражения может не быть имени: alert(function(){}) // анонимная функция - функция без имени Зато ее можно присвоить в переменную и дальше юзать как обычную функцию-объявление: var example = function(){} // теперь в переменной example хранится ссылка на функцию: example();// вызвали функцию alert(example) |
| Часовой пояс GMT +3, время: 08:45. |