JS学习 笔记 (1) 函数

JS  


定义函数的几种方法



1.
function 函数名(p1,p2){
    return p1+p2;
}


2.匿名函数
var a=function (p1,p2){
return p1+p2;
}


3.  比较少用
var myFun=new Function("p1","p2","return p1+p2");

函数的功能



1.作为函数使用
2.作为类使用
3.作为类的方法




调用函数的三个方法

/*
JS调用函数的三种方法  以及区别  
call 和 apply的区别是 
call 需要一个个写参数
而apply 通过  arguments 获取  主调对象的参数
*/


function myFun(a,b){
    alert(a+b);
};


var o=new Object();
//1.直接调用
myFun(1,2);
//2.使用call  调用  函数名.call(调用对象,参数.,.,..);
myFun.call(o,2,3);
// 3.使用apply调用  函数名.apply(调用对象,arguments);
var a=function (a,b,c){
myFun.apply(o,arguments);
}


a(3,4,5);


//call 和apply 的区别



function Person(name,age) {  
this.name=name;  
this.age=age;  
this.money = 500;



function myFun(money) {
alert(this.money);
}


var money = 100;
myFun(money); 
//return 100;  //window.myFun(money); save to myFun(money);
//这个时候this指向的是window对象,其实myFun函数和定义的var money = 100;都作为window对象子对象(即全局对象)


myFun.apply(window,[]);  //save to window.myFun.apply(window,[]);  
//return 100;  //同上


myFun.apply(new Person('zhangsan',23),[]);  
//return 500, 空数组作为参数,仅符合语法要求
//这个时候myFun方法里面的this指向的是new Person('zhangsan',23)对象,二不是myFun类(函数),故弹出500


myFun.call(new Person('zhangsan',23),money,300,'mycardId');  




猜你喜欢

转载自blog.csdn.net/fei2253/article/details/38717915