javascript笔记(2)(Evernote)

一、函数声明与函数表达式的区分
 

    函数声明:

  function  函数名称  (参数:可选) { 函数体 }

  函数表达式:

  function  函数名称(可选)(参数:可选) { 函数体 }

 

  function foo(){} // 声明,因为它是程序的一部分
var bar = function foo(){}; // 表达式,因为它是赋值表达式的一部分

new function bar(){}; // 表达式,因为它是new表达式

(function(){
function bar(){} // 声明,因为它是函数体的一部分
})();

还有一种函数表达式不太常见,就是被括号括住的(function foo(){}),他是表达式的原因是因为括号 ()是一个分组操作符,它的内部只能包含表达式

二、Module模式
  1. 模块化,可重用
  2. 封装了变量和function,和全局的namaspace不接触,松耦合
  3. 只暴露可用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日                                                                  




















posted on 2016-03-13 16:01  songjum  阅读(172)  评论(0编辑  收藏  举报