辅助调用函数【call,apply,bind】

函数也是对象,每个函数都有自己的方法。

e.g。

var jane = {
  name:'Jane',
  sayHelloTo:function(name)
    {
         'use strict';
         console.log(this.name+' say hello to '+name);      
    }        
}

 

1.call

Function. prototype. call( thisValue, arg1?, arg2?, ...) 

 

 例子如下:

//调用方法
jane.sayHelloTo("Grant");
jane.sayHelloTo.call(jane,"Grant");
var func = jane.sayHelloTo;
func.call(jane,"Grant")

2.apply

Function. prototype. apply( thisValue, argArray) 

jane.sayHelloTo("Grant");
jane.sayHelloTo.apply(jane,["Grant"]);
var func = jane.sayHelloTo;
func.apply(jane,["Grant"])

3.bind

Function.prototype.bind(thisValue,arg1?,....,argN?)

function func()
{ 
    console.log('this is :'+this);
    console.log('arguments is '+Array.prototype.slice.call(arguments)); 
}
var bound = func.bind('abc',1,2);
bound.apply();

 

posted @ 2020-02-27 11:14  LandWind  阅读(179)  评论(0编辑  收藏  举报