文档章节

来说下apply和call

dfatxm
 dfatxm
发布于 2017/05/03 23:38
字数 208
阅读 36
收藏 0

EcmaScript3给Function的原型定义了两个方法: Function.prototype.apply和Function.prototype.call

call和apply的区别: 主要是传参方式的不同。 apply传入的是数组或类数组。

var func = function (a,b,c) {
   alert( [a,b,c] );
}

func.apply( null,[1,2,3] ) ;  // 输出[1,2,3]    第一个参数表示函数体内的this指向,null表示指向函数默认的宿主对象,在浏览器里是window, 如果用严格模式下,则会为null

func.call( null, 1,2,3 );  //也是输出 [1,2,3]

var func = function (a,b,c){
   'use strict';
   alert( this === null ); //输出true
}

var func = function (a,b,c){   
   alert( this === null ); //输出false  , this 是 window
}

//实例:借用其他对象的方法
Math.max.apply( null , [1,2,3,4,6,5] );   //6


//改变this的指向
var obj1 = {
   name: 'dongfang'
}
var obj2 = {
   name: 'zeS'
}

window.name = 'abc';

var getName = function(){
   console.log( this.name);
}

getName(); //输出abc
getName.apply(obj1);  //this指向obj1    输出dongfang
getName.apply(obj2);  //this.指向obj2   输出zeS


© 著作权归作者所有

共有 人打赏支持
dfatxm
粉丝 3
博文 66
码字总数 20630
作品 0
厦门
前端工程师
私信 提问
js call,apply,bind总结

一句话用来指定this的环境 1、call() 通过在call方法,给第一个参数添加要把b添加到哪个环境中,简单来说,this就会指向那个对象。 call方法除了第一个参数以外还可以添加多个参数,如下: ...

再这么说就哭了呦!
2017/10/27
0
0
call,apply,bind方法的总结

一般用来指定this的环境,在没有学之前,通常会有这些问题。 var a = { user:"Lenovointer", fn:function(){ console.log(this.user); }}var b = a.fn;b(); //undefined 1、call() var a = ......

945996501
06/26
0
0
Dispatch_apply (线程同步)

在某些特殊的开发场景下,我们可能会有这样的需求:n个任务并发。 比如我们需要以每个像素为基准来处理计算image。这个时候使用如下代码极有可能引起线程爆炸或死锁 使用Dispatch_apply来解决...

天心鸥兹
2017/09/04
0
0
apply与call性能分析

apply call 基本概念 稍有一些javascript基础的人应该对这两个函数都不会陌生,这里简单过一下基本概念。这两个方法一般都是用来调用一个函数时改变其内部this指向,换句话说:劫持一个对象的...

TokenYang
2017/09/04
0
0
JavaScript中call,apply,bind方法的总结。

why?call,apply,bind干什么的?为什么要学这个?   一般用来指定this的环境,在没有学之前,通常会有这些问题。 var a = { user:"追梦子", fn:function(){ console.log(this.user); }}var...

guanchaoguo
2017/05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
31分钟前
1
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
34分钟前
1
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
5
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
4
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部