私は実際にforeach(console.logが印刷される)でこれがWindowオブジェクトになる理由を理解していません。前もって感謝します。予期せぬバインドを使用した後のこの値
コードでは、ホバーイベントが検出され、範囲スライダの値が読み取られます。
HTML、
<input type="range" min="0" max="255" step="1" value="10" id="rangeR">
JS、
var ColorDispatcher = function() {
this.rgbColorArray=new Array(0,0,0);
};
ColorDispatcher.prototype = {
hoverHandler:function() {
var SliderArray=new Array(document.getElementById("rangeR"));
SliderArray.forEach(function sliderHandler(element, index, array){
console.log(this);
element.addEventListener("change", function() {
if(index==0){//R
this.rgbColorArray[0]=element.value;
}
});
});
},
};
var dispatcher = new ColorDispatcher();
document.body.addEventListener('mouseover',dispatcher.hoverHandler.bind(dispatcher));
[this 'キーワードは、オブジェクトのプロトタイプ内のウィンドウオブジェクトをJavascriptで返しますか?](http://stackoverflow.com/questions/13224620/the-this-keyword-returns-the-window-object -within-an-object-prototype-in-jav) – RaR