如何从内部函数中找到调用者?
<input type='button' id='btn' value='click' />
<script type="text/javascript">
var jObject = {
bind : function(){
var o = document.getElementById('btn');
o.onclick = function(){
// How can I find caller from here ?
}
}
};
jObject.bind();
</script>
更新
我从这里读到了一些技巧 - http://www.mennovanslooten。 nl/blog/post/62
现在我可以在内部函数中获取 jObject 了。
<input type='button' id='btn' value='click' />
<script type="text/javascript">
var jObject = {
bind : function(){
var o = document.getElementById('btn');
o.onclick = function(jObj){ // 1. add this
return function(){ // 3. wrap with return function(){ ... }
alert(jObj); // 4. now I can get jObject here.
}
}(this); // 2. and this
}
};
jObject.bind();
</script>
<input type='button' id='btn' value='click' />
<script type="text/javascript">
var jObject = {
bind : function(){
var o = document.getElementById('btn');
o.onclick = function(){
// How can I find caller from here ?
}
}
};
jObject.bind();
</script>
UPDATE
I read some trick from here - http://www.mennovanslooten.nl/blog/post/62
And now I can get jObject inside inner function.
<input type='button' id='btn' value='click' />
<script type="text/javascript">
var jObject = {
bind : function(){
var o = document.getElementById('btn');
o.onclick = function(jObj){ // 1. add this
return function(){ // 3. wrap with return function(){ ... }
alert(jObj); // 4. now I can get jObject here.
}
}(this); // 2. and this
}
};
jObject.bind();
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的
onclick
中,this
将引用您单击的元素,例如:
Inside your
onclick
,this
will refer to the<input id="btn">
element you clicked, for example: