Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как в функцию-обработчик добавить дополнительный аргумент? (https://javascript.ru/forum/events/59460-kak-v-funkciyu-obrabotchik-dobavit-dopolnitelnyjj-argument.html)

MishaUA 12.11.2015 02:33

Как в функцию-обработчик добавить дополнительный аргумент?
 
Здравствуйте!
Допустим, внутри какой-то функции есть такой код:
this.gObject = document.createElement("div");
this.object = {var1:1};

Теперь мне нужно добавить обработчик события onmousedown.
В качестве аргумента может быть само событие:
this.gObject.onmousedown = function (event) {}

А можно передать и указатель на тот объект:
this.gObject.onmousedown = function (obj) {
	return function() {		
	}
} (this.object);

Но как сделать так, чтобы в функцию было передано событие (event) и указатель на объект (this.object)?
Спасибо!

pnpquest 12.11.2015 03:14

Использовать лексические переменные
<html>
<head>

<meta charset="utf-8">

<style>


</style>

</head>
<body>





<script>


Element = {
  value: 1,
  create: function(tagName, text){
    var o = Object.create(this)
    o.element = document.createElement(tagName)
    o.element.innerHTML = text
    o.element.onclick = function(){alert([this.innerHTML, o.value])}
    document.body.appendChild(o.element)
  }
}

Element.create("div", "foo")


</script>
</body>
</html>

MishaUA 12.11.2015 14:52

Оказалось, что в моем случае, в обработчике события в arguments[0] хранится то самое событие мыши.
Так проблему и решил))))


Часовой пояс GMT +3, время: 15:55.