「理解に問題があります。コードの一部:
//constructor
function Widget (options) {
};
//return the string
Widget.prototype._addEditFormString = function (val) {
return "<input type='text' value='" + val + "' >";
}
//initializing method
Widget.prototype.init = function () {
var addRowButton = document.getElementsByName("addRow")[0];
addRowButton.addEventListener("click", this.addRow, false);
};
//this context in this method still confusing me
Widget.prototype.addRow = function () {
console.log(this._addEditFormString);//Uncaught TypeError: Object #<HTMLInputElement> has no method '_addEditFormString'
}
var wid = new Widget();
wid.init();
問題 - init() メソッドでイベント リスナー (addRow メソッド) を追加しますが、addRow メソッドではコンストラクター クラスの "this" をキャッチする方法がわかりません。_addEditFormString() メソッドを呼び出したいのですが、"Uncaught TypeError : オブジェクト [オブジェクト Window] にはメソッド '_addEditFormString' がありません。Widget.prototype._addEditFormString なしでそれを修正するにはどうすればよいですか? それともその唯一の解決策ですか?ありがとう。