-
slideshow=function(){
var g = document.createElement(...);
...
g.onclick = f1;
f1 = function(slideshow_instance, event) {
//EXPLAIN ME HOW TO GET THE slideshow_instance
}
}
var sl1 = new slideshow();
var sl2 = new slideshow();
点击已创建的元素幻灯片应返回
SL1
或
SL2
我解释得好吗?
答案 0 :(得分:5)
简短回答,请使用:this
。
更长的答案,你想要的是:
slideshow=function(){
/* ... */
var self = this;
f1 = function(event) {
// do stuff with self.
}
}
您需要使用this
指向self
的原因是事件处理程序在调用它们时会更改this
的含义。但是在创建对象时this
正确引用了正确的对象(幻灯片放映的实例)。我们可以在事件回调期间访问自变量的原因是因为它已被闭包捕获。
如果您需要进一步说明,请随意google或在stackoverflow上搜索上述说明中的任何字词/术语。
答案 1 :(得分:1)
slideshow=function(){
var g = document.createElement(...);
g._objRef = this;
...
g.onclick = f1;
f1 = function(event) {
alert(this._objRef);
}
}
var sl1 = new slideshow();
var sl2 = new slideshow();
有点像黑客,但它应该可以解决这个问题。