js事件至关重要:
function作为参数
JavaScript语言中有个特殊的语法,就是可以将一个function作为方法的参数进行传递,类似于C和C++中的函数指针,也类似于C#中的委托
function test(a,b,fn){
fn(a,b);
};
test(1,2,function(a,b){
alert(a + b); //3
});
上述例子中我们可以看出来,<span style="color:#ff0000;">我们将一个方法作为参数传递给了test的fn</span>,<span style="color:#ff0000;">并且在test中被执行。如果我们写成test(1,2,3)就会报错了,因为fn(a,b)这种特殊的写法,要求fn必须是一个方法,所以我们往往在执行fn前加上一个判断
function test(a,b,fn){
if(typeof(fn) == "function"){
fn(a,b);
}
}</span>
函数实际上是对象,每个函数包含两个属性(length和prototype)
函数表达式定义函数,函数末尾有一个分号
当在网页的全局作用域中调用函数时,this对象引用的就是window
bind(),这个方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值
window.color="red";
var o={color:"blue"};
function sayColor(){
alert(this.color);
}
var objectSayColor=say.bind(o);
objectSayColor();//blue objectSayColor()函数的this值等于o