码迷,mamicode.com
首页 > 移动开发 > 详细

javascript call和apply

时间:2015-04-23 23:10:49      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

用途:

每个函数都包含两个非继承而来的方法:call和apply.它们的用途都是在特定作用域当中调用函数,实际上等于设置了函数体内this的值。

语句块:fn.call(obj,arg1,arg2,arg3...)              fn.apply(obj,[arry]/arguments)

call和apply最强大的地方是能够扩充函数赖以运行的作用域,实际场景如下:

var name = "复读机",
    age = 25;
function say(){
    console.log("name : " + this.name);
    console.log("age : " + this.age);
}
var obj = {
    name : "bb机",
    age : 30
}
say(); //name : 复读机 age : 25 
say.call(obj);//name : bb机 age : 30 

如果我们不使用call方法,我们是怎么用obj调用say这个函数的呢

var name = "复读机",
    age = 25;
function say(){
    console.log("name : " + this.name);
    console.log("age : " + this.age);
}
var obj = {
    name : "bb机",
    age : 30
}
say(); //name : 复读机 age : 25 
obj.say = say;
obj.say();//name : bb机 age : 30

可以看出用call将会更方便!

 

javascript call和apply

标签:

原文地址:http://www.cnblogs.com/wang-jiang/p/4452037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!