call笔记

总结:

1、call的第一个参数是this
2、call的其他参数是arguments
3、返回值用于返回结果,不过没有return,就返回undefined
4、形参就是var a =arguments[0]
5、

  add.call("abcds",1,2);
  add.apply("abcds",[1,2]);

当参数少时用call,参数多或者不知数组长度时用apply

推理

1、

function b (){
     console.log(this);
     console.log(arguments);
}
b.call();
Paste_Image.png

没传的时候,this为window
2、

function b (){
     console.log(this);
     console.log(arguments);
}
b.call({name:'this'},1,2,4);
Paste_Image.png

类似于:

function b (){
     console.log(this);
     console.log(arguments);
}
var obj={name:'this'};
b.call(obj,1,2,4);

3、

function add (){
     console.log(arguments[0]);
     console.log(arguments[1]);
     console.log(arguments[0]+arguments[1]);
}
var sum=add.call(undefined,1,2);
console.log(sum);
Paste_Image.png

add函数里需要return 出结果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,365评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,378评论 2 17
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,456评论 0 4
  • 我們已經在第1章討論過,在javascript中,函數其實就是對象,使函數不同意其他對象的決定性特點是函數存在一個...
    WanLum阅读 2,532评论 2 1
  • 三、闭包和高阶函数 3.1 闭包 3.1.1 变量的作用域 所谓变量的作用域,就是变量的有效范围。通过作用域的划分...
    梁同学de自言自语阅读 5,328评论 0 6