Даже не знаю как сформулировать вопрос...
Я только начал изучать js и много не знаю, поэтому извиняюсь если спрашиваю банальность.
Пример:
<div id="obj1">1</div>
<div id="obj2">2</div>
$(document).ready(function() {
new MyFunction($('#obj1'));
new MyFunction($('#obj2'));
});
var MyFunction = function (obj) {
this.obj.objDOM = obj;
this.objDirect = obj;
var ths = this;
this.obj.objDOM.on('click', function(){ths.func();})
}
MyFunction.prototype = {
obj: {objDOM:{}},
objDirect: {},
func: function () {
console.log(this.objDirect.attr('id')+':'+this.obj.objDOM.attr('id'))
}
};
И что мы получим в консоли при клике сначала по 2, а потом по 1?
Правильный ответ:
"obj2:obj2"
"obj1:obj2"
Но какого дьявола?
Почему создание второго объекта изменило прототип?