Javascript 如何从内部函数中找到调用者?
更新 我从这里读到了一些技巧- 现在我可以在内部函数中得到jObjectJavascript 如何从内部函数中找到调用者?,javascript,closures,language-features,Javascript,Closures,Language Features,更新 我从这里读到了一些技巧- 现在我可以在内部函数中得到jObject <input type='button' id='btn' value='click' /> <script type="text/javascript"> var jObject = { bind : function(){ var o = document.getElementById('btn'); o.onclick = function(){ // How ca
<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>
在onclick中,这将引用您单击的元素,例如:
<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>
调用者是调用函数的人。在上面的代码示例中,调用者是ButtonID=btn.ThankeCraver,如果我也希望从该内部函数中获取jObject,是否可能?
var jObject = {
bind : function(){
var o = document.getElementById('btn');
o.onclick = function(){
alert(this.value); //alerts 'click'
}
}
};
jObject.bind();