解决方案 »
- js 如何对时间处理
- extjs4.0 MVC 变更proxy的url 以及查询条件
- 这个弹出框是怎么做的呢??
- 那个高手帮我看看上面代码是什么意思?为什么通过这组代码<script language=javascript src=<%=Siteurl%>/ads/ads.
- javascript如何获得今天日期
- 怎么用Js 写一个 代码风格排版引擎?(征求意见...)
- 地址栏里如何加标志呀,高手们,帮我呀,
- 求代码:会移动的文字【但不用marquee】
- 求助!支持中文的字形生成器(vbscript或javascript)
- 怎么获取函数里的嵌套load() 方法完成时运行的回调函数的值
- 新人自学javascript,有关于函数的属性和方法
- ueditor怎么在config.json文件里面获取项目的根路径
{
alert("ha ha ,ni mei !");
return function () { alert(" you shi ni mei a "); };
} window.onload = function ()
{
document.getElementById("btn").onclick = test();
}此时当页面加载的时候页面会弹出"ha ha ,ni mei !";
上面这个页面加载时就执行test(),所以会弹出。。 window.onload = function ()
{
document.getElementById("btn").onclick =function()
{
alert("ha ha ,ni mei !");
return function () { alert(" you shi ni mei a "); };
} ;
}
这个页面加载时会给id为btn的元素(比如button)绑定点击事件,只有在点击btn时才会弹出ha ha ,ni mei !
這句意思是,讓id=btn 的dom 屬性 onclike 指定為 test 執行後的值
test 是函數對像,加上() 代表執行,
因為沒有執行的話就沒有值可以指定給onclick
test() 因為沒有回傳任何值 所以實際上等於
document.getElementById("btn").onclick = undefined;
這樣是不會有點擊的效果onclick 必須要指定為函數對像
也就是test 後面的 () 請拿掉
document.getElementById("btn").onclick = test;
這樣就可以
和btn.onclick=function()
{
里面的内容和test()里面的一样
}这两种方法是一样吗?
这个不是我的那个问题,就是onclick后面的函数跟了()的话,就是执行一遍这个函数,把返回值赋值给onclick,但是如果用function(){}这种方式的话就不会执行一遍这个匿名函数,这是为什么
这个得到的是test函数的返回值
=function(){}
这儿得到的是一个函数引用
你可以写=test,但不应该写=test()
建议补基础,不只是js的,函数()表示执行函数并获得返回值,这算各语言的通用规则了
function(){} 裡面包什麼你完全不用管,
你該知道的是這句僅代表 onclick 指定為對 function() { .........裡面不管是什麼.......} 暱名函數的引用
當你要執行的時候 你可以:
1. document.getElementById("btn").click();
2. (function() { .........裡面不管是什麼.......})(); //後加上 () 表示執行如果你要像test() 一樣用返回值赋值給onclick 那你就加上 ()
document.getElementById("btn").onclick =function()
{
alert("ha ha ,ni mei !");
return function () { alert(" you shi ni mei a "); };
}() ;
{
document.getElementById("btn").onclick = test();
}test() 得到的是什么呢?他 return 了一个 function()也就是说 window.onload = function () { alert(" you shi ni mei a "); },因为这个是 test 方法执行后返回的数据,但是在执行过程中,alert("ha ha ,ni mei !"); 也被执行了 window.onload = function ()
{
document.getElementById("btn").onclick =function()
{
alert("ha ha ,ni mei !");
return function () { alert(" you shi ni mei a "); };
} ;
}这个时候, window.onload 是什么呢?就是你完整的匿名函数,当点击按钮,弹处 haha,nimei,并返回一个 function 对象,不过没有什么东西可以接收这个返回的东西而已