函数的一些方法

call()
调用一个对象的一个方法,另一个对象替换当前对象。
call 方法可以用来代替另一个对象调用一个方法。

    function add(a,b)  
    {  
        console.log(a+b);  
    }  
    function sub(a,b)  
    {  
        console.log(a-b);  
    }  
      
    add.call(sub,3,1);  

 这个例子中的意思就是用 add 来替换 sub,add.call(sub,3,1) == add(3,1) ,所以运行结果为   4

 

 call:和apply的意思一样,只不过是参数列表不一样. apply(o[1,2])   call(o,1,2)

f.calll(o);

f.apply(o);

 Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表

function Person(name,age)  
    {  
        this.name=name;  
        this.age=age;  
    }  
    /*定义一个学生类*/  
    function Student(name,age,grade)  
    {  
        Person.apply(this,arguments);  
        this.grade=grade;  
    }  
    //创建一个学生类  
    var student=new Student("zhangsan",21,"一年级");  
    //测试  
    console.log("name:"+student.name+"\n"+"age:"+student.age+"\n"+"grade:"+student.grade);  
    /输出结果name:zhangsan age:21  grade:一年级  
    //学生类里没有给name和age属性赋值

 

 

bind

方法主要作用是将函数绑定某个对象

function f(y) {return this.x+y}   //待绑定的函数
var o={x:1}    //将要绑定的对象
var g=f.bind(o)     //通过调用g(x)调用o.f(x)
console.log(g(2))    // 3

 ECMAScript 5中的bind方法不仅仅是将函数绑定到对象 还附带一些其他的应用 除了第一个实参

 传入bind的实参也会绑定至this 是一种常见的函数式编程技术   又是被称为柯里化

 

function f(y,z){return this.x+y+z}   //另外一个做累加计算的函数
var g = f.bind({x:1},2)      //绑定this和y
console.log(g(3) )      //6 this.x绑定到1 y绑定到2 z绑定到3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值