我不确定如何解决我遇到的这种用户交互问题。 API为3DMol
我正在尝试访问
中的this
个元素
model.setClickable({chain: theChain, resi: mappedPosition}, true, function(){
console.log(this);
});
首先,对于上面的原始实现,this
将是用户点击的位置。但是,我还需要将点击的位置与来自外部调用对象的某些值相结合。
我尝试了.bind(null,this)
但函数this
中的null
设置为const clickClosure = function(){
const mutations = self.alignment.mutations;
function clicker(){
console.log(this);
console.log(mutations);
}
return clicker();
}
model.setClickable({chain: theChain, resi: mappedPosition}, true,clickClosure);
。
我尝试了一个闭包
this
发现存在突变,但未定义$ awk '1;sub(/CODE_TYPE.*/,"USER_CODE \"DEFAULT\"")' file
MY_TABLE_1 MY_CODE "OFF"
MY_TABLE_1 YOUR_CODE "ON"
MY_TABLE_1 CODE_TYPE "<NONE>"
MY_TABLE_1 USER_CODE "DEFAULT"
MY_TABLE_1 CODE_STATE "ON"
MY_TABLE_2 MY_CODE "IGNORE"
MY_TABLE_2 YOUR_CODE "IGNORE"
MY_TABLE_2 CODE_TYPE "FLAGGED"
MY_TABLE_2 USER_CODE "DEFAULT"
MY_TABLE_2 CODE_STATE "ON"
。知道如何在不使用全局变量的情况下获得两者吗?
答案 0 :(得分:1)
使用lambda函数传递词法this
。
model.setClickable({chain: theChain, resi: mappedPosition}, true, (stuff) => {
console.log(this, stuff); // no `this` binding to the function
});
这应该使this
与调用者绑定,并且它实际上是从这样的回调中获取该引用的唯一方法。