博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简简单单认识call,apply,bind方法
阅读量:6227 次
发布时间:2019-06-21

本文共 1086 字,大约阅读时间需要 3 分钟。

js里面的call apply bind 方法

利用js里面的function函数

function example(a,b){        console.log(a+b)    }    example(1,2)    输出 3

call方法

var a = 1;    function example(){        console.log(this.a)    }    输出 1

this代表的是window对象,a为全局变量,全局变量实际上是window对象的一个属性。

var a = 1;    var obj = {        a=9;    };    function example(b){        return this.a+b    }    console.log(example.call(obj,2))

输出11,而不是3,实际上,call是改变函数里面的this对象的,如果以example()这种普通方式调用函数的话,this值为我们设置的全局变量。而以call方法调用时,this值为我们传进去的obj对象。

apply方法

apply方法实际上是与call方法用法相同,只不过apply方法传进去的参数是以数组形式例如

example.apply(obj,[2])

其他与call并没有区别。

bind方法

我们用上面的方法使用bind方法

var a = 1;    var obj = {        a=9;    };    function example(b){        return this.a+b    }    console.log(example.bind(obj,2))

我们会发现打印出来的是一个函数

ƒ example(b){            return this.a+b        }}

我们再把参数去掉打印一下

console.log(example.bind(obj))ƒ example(b){            return this.a+b        }}

我们会发现并没有变化

实际上bind是将obj对象与函数进行绑定,如果我们需要使用,我们需要将函数重新创建一个变量,然后调用新的变量就可以了,

var newexample = example();newexample()

如果我们再进行打印

console.log(newexample(2))

我们会得到11

好了,call apply bind 方法就介绍到这里了,你记住了吗?

转载地址:http://gxnna.baihongyu.com/

你可能感兴趣的文章
nginx在reload时候报错invalid PID number
查看>>
神经网络和深度学习-第二周神经网络基础-第二节:Logistic回归
查看>>
Myeclipse代码提示及如何设置自动提示
查看>>
c/c++中保留两位有效数字
查看>>
ElasticSearch 2 (32) - 信息聚合系列之范围限定
查看>>
VS2010远程调试C#程序
查看>>
[MicroPython]TurniBit开发板DIY自动窗帘模拟系统
查看>>
由String类的Split方法所遇到的两个问题
查看>>
Python3.4 12306 2015年3月验证码识别
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
windows查看端口占用
查看>>
Yii用ajax实现无刷新检索更新CListView数据
查看>>
JDBC的事务
查看>>
Io流的概述
查看>>
App 卸载记录
查看>>
JavaScript变量和作用域
查看>>
开源SIP服务器加密软件NethidPro升级
查看>>
百度页面分享插件源代码
查看>>
《别做正常的傻瓜》的一些读书心得
查看>>
作业:实现简单的shell sed替换功能和修改haproxy配置文件
查看>>