JavaScript中的call(),apply(),bind()方法 关于this指向
来源:互联网 发布:时间序列的聚类算法 编辑:程序博客网 时间:2024/05/17 01:03
引例:
var a = { user:"yao", fn:function () { console.log(this.user); }};var b = a.fn;b();//undefined
1.call()
var a = { user:"yao", fn:function () { console.log(this.user); }};var b = a.fn;b.call(a);//yao通过call()的第一个参数,将b添加到第一个参数的环境中,是的this指向b。
ps:
call()还可以添加其他参数,
var a = { user:"yao", fn:function (e,ee) { console.log(this.user);//yao console.log(e + ee);//3 }};var b = a.fn;b.call(a,1,2);
2.apply()类似,只是第二个参数必须是数组。
注意:
若call()、apply()第一个参数是null,this指向是window
3.bind()
bind的方法和call()、apply()的方法不同,但是其实可以改变this的指向。
var a = { user:"yao", fn:function () { console.log(this.user); }};var b = a.fn;b.bind(a);并没有打印,。。。此时,bind返回的是修改后的对象。
var a = { user:"yao", fn:function () { console.log(this.user); }};var b = a.fn;var c = b.bind(a);console.log(c);//function(){console.log(this.user)}
var a = { user:"yao", fn:function () { console.log(this.user); }};var b = a.fn;var c = b.bind(a);c();//yao
注意:bind()也可以添加参数
var a = { user:"yao", fn:function (d,e,f) { console.log(this.user);//yao console.log(d,e,f);//10 1 2 }};var b = a.fn;var c = b.bind(a,10);c(1,2);
0 0
- JavaScript中的call(),apply(),bind()方法 关于this指向
- 函数中的this指向,以及 修改this指向的 call/apply/bind方法
- Javascript中的this,call,apply,bind!
- Javascript中的this,call,apply,bind!
- Javascript中的this,call,apply,bind函数
- JavaScript中call,apply,bind方法的总结(改变this指向)
- JavaScript中的call、apply、bind方法
- JavaScript中的apply、call和bind方法
- JavaScript 中的 call()、apply() 和 bind() 方法
- JavaScript中的call、apply、bind方法
- 改变this指向(call、apply、bind)
- js call() apply() bind() -改变this指向
- 浅谈js中的call,apply,bind方法中的this指针
- javascript 中的call、apply、bind
- Javascript中的apply、call、bind
- Javascript中的apply、call、bind
- Javascript中的apply、call、bind
- Javascript中的apply、call、bind
- 分享Kali Linux 2016.2第42周镜像文件
- WebService到底是什么?
- 《Spring揭秘》第三章 读书笔记 —— 掌控大局的IoC Service Provider
- enum与typedef enum的用法
- linux服务器怎么安装pip
- JavaScript中的call(),apply(),bind()方法 关于this指向
- 开发优化之——调优工具:dump hprof file 查看内存情况,找到内存泄露,androidhprof
- 数组的定义
- VC6和VC8(VS2005)生成map和cod文件
- Preference
- centos7 关闭firewall安装iptables并配置
- RAC热信号
- 我的代码片
- 关于c3p0 ResourcePoolException: Attempted to use a closed or broken resource pool