javascript笔记(2)(Evernote)

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

    函数声明:模块化

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

  函数表达式:this

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

 

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

new function bar(){}; // 表达式,由于它是new表达式

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

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

2、Module模式
  1. 模块化,可重用
  2. 封装了变量和function,和全局的namaspace不接触,松耦合
  3. 只暴露可用public的方法,其它私有方法所有隐藏
 3、本身第一次作出来的函数
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日