一、函数声明与函数表达式的区分
函数声明:
function 函数名称 (参数:可选) { 函数体 }
函数表达式:
function 函数名称(可选)(参数:可选) { 函数体 }
function foo(){} // 声明,因为它是程序的一部分 var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分 new function bar(){}; // 表达式,因为它是new表达式 (function(){ function bar(){} // 声明,因为它是函数体的一部分 })(); 还有一种函数表达式不太常见,就是被括号括住的(function foo(){}),他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含表达式 二、Module模式
- 模块化,可重用
- 封装了变量和function,和全局的namaspace不接触,松耦合
- 只暴露可用public的方法,其它私有方法全部隐藏
三、自己第一次做出来的函数 window.onload=function(){ var song=document.getElementById("myFirst"); song.addEventListener("click",changeBoxes,false); } function changeBoxes(evt){ var oForm=document.forms["myForm1"]; var oCheckBox=oForm.hoby; alert(evt.target.name); for(var i=0;i<oCheckBox.length;i++) if(evt.target.name<0) oCheckBox[i].checked=!oCheckBox[i].checked; else if(evt.target.name>0) oCheckBox[i].checked = 1 ; else oCheckBox[i].checked = 0 ; <p id="myFirst"> <input type="button" value="全选" name="1"> <input type="button" value="全不选" name="0"> <input type="button" value="反选" name="-1"> </p> } 第一个函数是执行函数 通过getElementById("myFirst")获取到p标签。通过addEventListener 进行事件监听;将事件绑定在3个input标签的父级p上,实现了事件委托并且在进一步理解了事件委托之后,通过target属性 在点击事件中指向你所点击的对象,能进一步动态获取点击对象的属性,从而通过判断属实对不同点击对象实现不同的操作。 !!!!!!!!!!!用到了 evt.target.name 其中evt是参数;另外,需要知道,如果像<element onclick="function(this)"> 这样添加事件, 该this是指向该Element 2014年11月26日
时间: 2024-11-07 09:26:47