<script type="text/javascript">
/*
var e = document.getElementById("e");e.onblur = function(){
//触发blur的时候才执行。
myonblur(a1, a2);
};function myonblur(a1, a2) {
}e.onclick = aaa(myonblur, "str1", "str2");function aaa(fun, str1, str2) {
//这里如果是call的话会立即执行func函数的,然后onclick的结果是myonblur执行的结果。。
return fun.call(null, str1, str2);
};function myonblur(str1, str2) {
alert(str1 + str2);
}
*/
</script>
解决方案 »
- 大神们 救命啊!!!!
- 请问:如果dom元素还没添加到html结构里去的话,能获取到么
- Jquery中使用ajax的一些连接上的问题
- 求将小写字母实时转换为大写的代码!
- 奇怪的问题。为什么每次触发了js事件以后,数组都会被初始化呢。
- 请教应该如何屏蔽状态栏里的打开网页进度条?
- 操作数据库
- 什么能过post或get把数组传给jsp??
- 可不可以限制表格中,无论在哪个单元格显示多长的数据,单元格的总的宽度都不超过页面的宽度?即简单说就是在一个页面内显示表格的全部,
- 求帮助!jquery点击按钮模拟键盘输入退格键
- 不知道为什么数组的之值发生了变化
- 怎么动态加载js没反应呢,不懂JS,谢谢告我一下??
e.onclick = aaa( myonblur,"str1", "str2");
function aaa(fun, str1, str2) {
return function(){ fun.call(null, str1, str2);}
};
function myonblur(str1, str2) {
alert(str1 + str2);
}
应该是这样,想问两个方法的区别都是触发事件可得到同样的结果
<script type="text/javascript">
/*
var e = document.getElementById("e");e.onblur = function(){
/*
在循环的过程中
每个函数的a1和a2都引用着外面的a1和a2,又因为循环过程中a1和a2一直在变,
所以导致循环结束后,a1和a2的结果是最后一次循环的结果
所以函数里的a1和a2也就是都是循环最后a1和a2的最后的结果
*/
myonblur(a1, a2);
};function myonblur(a1, a2) {
}e.onclick = aaa(myonblur, "str1", "str2");function aaa(fun, str1, str2) {
/*
这里函数每次都会执行。。
所以产生了不同的str1和str2
所以每个函数都会引用这些“自己”的str1和str2
因为这个函数执行后
它里面返回了一个函数
而返回的那个函数里又需要用到str1和str2
所以这些需要的资源不会释放
这种东西就叫做闭包
*/
return function () {
fun.call(null, str1, str2);
}
};function myonblur(str1, str2) {
alert(str1 + str2);
}
</script>