「これ」について何百万もの Q&A があることは知っていますが、それでもこれは、何度も読んだり考えたりした後でさえ、理解できないものです。次の例を検討してください。
(Setfanovによる「Javascriptパターン」を引用)
var myapp = {};
myapp.color = "green";
myapp.paint = function (node) {
node.style.color = this.color; };
var findNodes = function (callback) { // ...
if (typeof callback === "function") {
callback(found); }
// ... };
... findNodes() はグローバル関数であるため、オブジェクト「this」は GLOBAL OBJECT を参照します...
しかし、「これ」はそれを呼び出している人 (この場合は findNodes() 関数) にバインドされるべきではないでしょうか?