调用另一个方法的 this.method() 内部函数
Calling the this.method() inside function of another method
有没有办法在 checkBoxes()
方法的 checkbox.off().on('click', function () {})
中调用 createElement()
方法?我无法在方法内访问函数内的方法。
class Lists {
constructor() {
this.currentList = [];
this.completedList = [];
}
createElement(
value1 = undefined,
value2 = undefined,
value3 = undefined,
checkboxCheck = ''
) {
value3.append(`<li class="list-group-item p-3">
<input type="checkbox" ${checkboxCheck}/>
<span class="span-item">
${value1}
</span>
<div class="float-end">
<i class="fas fa-edit mx-2"></i>
<i class="fas fa-trash mx-2"></i>
</div>
<br />
<span class="span-time">${value2}</span>
</li>`);
}
checkBoxes() {
const checkbox = $('input[type=checkbox]');
checkbox.off().on('click', function () {
this.createElement(value1, value2...)
});
}
}
有3种方法。
// set 'this' to 'self' outside the function
const self = this;
checkbox.off().on('click', function () {
self.createElement(value1, value2...)
});
//use Function.prototype.bind to pass 'this'
checkbox.off().on('click', function () {
this.createElement(value1, value2...)
}.bind(this));
//use arrow function
checkbox.off().on('click', () => {
this.createElement(value1, value2...)
});
但我建议您通过搜索找出为什么 'this' 在您的代码中不起作用。
有没有办法在 checkBoxes()
方法的 checkbox.off().on('click', function () {})
中调用 createElement()
方法?我无法在方法内访问函数内的方法。
class Lists {
constructor() {
this.currentList = [];
this.completedList = [];
}
createElement(
value1 = undefined,
value2 = undefined,
value3 = undefined,
checkboxCheck = ''
) {
value3.append(`<li class="list-group-item p-3">
<input type="checkbox" ${checkboxCheck}/>
<span class="span-item">
${value1}
</span>
<div class="float-end">
<i class="fas fa-edit mx-2"></i>
<i class="fas fa-trash mx-2"></i>
</div>
<br />
<span class="span-time">${value2}</span>
</li>`);
}
checkBoxes() {
const checkbox = $('input[type=checkbox]');
checkbox.off().on('click', function () {
this.createElement(value1, value2...)
});
}
}
有3种方法。
// set 'this' to 'self' outside the function
const self = this;
checkbox.off().on('click', function () {
self.createElement(value1, value2...)
});
//use Function.prototype.bind to pass 'this'
checkbox.off().on('click', function () {
this.createElement(value1, value2...)
}.bind(this));
//use arrow function
checkbox.off().on('click', () => {
this.createElement(value1, value2...)
});
但我建议您通过搜索找出为什么 'this' 在您的代码中不起作用。