button.onclick=function(){alert(i)}
==>
var fn = function(){alert(fn.i)};
fn.i = i;
button.onclick=fn;
==>
var fn = function(){alert(fn.i)};
fn.i = i;
button.onclick=fn;
解决方案 »
- opera下js的脚本问题。ie表示无压力
- 求救~~~~为什么同样的代码在IE和遨游上可以执行在fireFox上就没反映.T_T
- 关于google输入框的浏览记录
- 子父窗口问题,实在没分了,各位对不住,以后一有分就散!
- 有没有办法用JavaScript在Table里插入thead??
- 原型里面方法形参传构造函数的属性,但值没变??求解!
- 急急急 js或者jquery控制浏览器
- 这段JS代码为何在火狐(Firefox)浏览器下没用?
- 点击右键弹出收藏夹,怎样做???
- 12306 java 登陆 https://kyfw.12306.cn/otn/dynamicJs/lojzuyz
- 请问JS变量如何通过FORM传参(急)
- 为什么这个逐渐显示的文字链接有时候不能弹出链接的页面?
var fn = function(){alert(event.srcElement.i)};
button.i = i;
button.onclick=fn;
button.onclick=function(){alert(i)}
这个能解释一下是什么意思吗?
{
var button=document.createElement("button")
button.onclick=(function(p){ return function(){ alert(p) }; })(i);
button.value="按钮"+i
document.body.appendChild(button)
}
不能只知其然,而不知其所以然
这涉及一个javascript的解释机制问题:相关内容是:lexical scope , closure
for(i=0;i<4;i++)
{
var button=document.createElement("button")
var fn = addi(i);
button.onclick=fn;
button.value="按钮"+i
document.body.appendChild(button)
}
function addi( i )
{
var fn = function(){alert(i);};
return fn;
}
{
var button=document.createElement("button")
button.onclick=new function("alert("+i+")")
button.value="按钮"+i
document.body.appendChild(button)
}
fason(咖啡人生)你的这个NEW的方法我试了一下,运行出错。说“缺少标识符”
你要注意大小写。那可不是fason写错了。
button.onclick=function(){alert(i)}和button.onclick=new Function("alert("+i+")")里的这两个function有什么不同?