私は実際には単純な(それはかなり確信している)例にこだわっている。私は第二の要素をクリックしたが、それはケースではないときに私は最初の要素と「第二」をクリックしたとき、私は「最初」を取得する必要があり、イベントを作成するときに、オブジェクト全体を結合することによってイベントの作成時にjavascriptのバインドオブジェクト
<div id="first">first</div>
<div id="second">second</div>
<script>
var JSClass = {
element : null,
click : function() {
console.log(this.element.id);
},
created : function(element) {
this.element = element;
this.element.addEventListener('click', this.click.bind(this));
}
};
JSClass.created(document.querySelector('#first'));
JSClass.created(document.querySelector('#second'));
</script>
。 あなたのオブジェクトがクラスのように動作する場合、あなたはこのような関数クロージャの使用をすることができますそれは私が使用する他のオブジェクトのための完全に機能するのですが、この単純なケースでは動作しません...
オブジェクトが1つだけ含まれています。 '.created()'を2度目に呼び出すと、初めて呼び出されたときに設定された「要素」プロパティの値が上書きされます。 – Pointy
'JSClass'をオブジェクトを返す関数に変更します。 –