我试图将.each()方法添加到JS类声明中。但是,我认为两个this
关键字存在冲突。尝试使用this
返回类变量将返回undefined
。
class MyClass{
constructor(parameterA, parameterB){
this.parameterA = parameterA;
this.myClassMethod = this.myClassMethod.bind(this);
}
myClassMethod(){
$('.class').each(function(){
console.log(this.parameterA); //Returns undefined
}
}
}
var test = MyClass(parameterA, parameterB);
答案 0 :(得分:0)
尝试将each
函数绑定到类上下文。
class MyClass{
constructor(parameterA, parameterB){
this.parameterA = parameterA;
}
myClassMethod(){
$('.class').each(function(){
console.log(this.parameterA); // Should log 'a'
}.bind(this));
}
}
$(function() {
const test = new MyClass('a', 'b');
test.myClassMethod();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="class">
</div>
<div class="class">
</div>
<div class="class">
</div>
<div class="class">
</div>
<div class="class">
</div>