【发布时间】:2016-11-27 18:13:48
【问题描述】:
我正在尝试通过制作一个人为的计算器模块来学习 Object.create。我试过bind 我试过删除this,但没有结果。
问题:
如何在元素的另一个属性中引用对象的属性,就像使用类一样。 或者我的示例不是一个很好的模式?如果是这样,我应该如何构建我的计算器对象以提供creation 上的事件侦听器?
Calculator.js
const Calculator = {
inputArr: [],
init: (selector)=> {
const el = document.querySelector(selector);
el.addEventListener('click', this.pushValue); // this wont work.
return this;
},
pushValue: (e) => {
let val = e.target.value;
if(val){
this.inputArr.push(val);
console.log(e.target, this.inputArr); // this wouldn't work.
}
}
};
const adder = Object.create(Calculator).init('#calc');
HTML:
<div id="calc">
<button class="btns" value="1">1</button>
<button class="btns" value="2">2</button>
</div>
【问题讨论】:
标签: javascript event-handling object-create