码迷,mamicode.com
首页 > 其他好文 > 详细

2018/12.21:函数this的指向

时间:2018-12-21 15:20:43      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:names   私有属性   null   mat   style   技术   就是   替换   info   

 

1.     解决函数内this指向

1.        可以在函数外提前声明变量 _this/that=this

2.        通过applycall 来修改函数内的this指向

(1)      二者区别用法是一样的,就是参数形式不一样  fn.call(obj,a,b)/fn.apply(obj,[a,b])

(2)      二者代表的是将函数内的this换成obj之后然后把fn调用

3.        bind修改函数内的this

Fn.bind(obj,a,b) 只是替换了this但是不调用fn,返回的还是函数

Fn.bind(obj,a,b)()

call和apply的区别??

技术分享图片技术分享图片

为什么用了call之后里面的names还是张三不是李四??

fn.call(obj) fn继承了obj中的所有属性,只要是继承的可以看成是公有的,天生自带的是私有的,在使用的时候,私有的有就不会找公有的。

技术分享图片技术分享图片

用apply找到当前最大的一项,apply不用代替谁的this,所以使用null,apply第二个参数值必须是数组,所以分math.max 就找到arr中最大的一项。

call和bind的区别?

技术分享图片技术分享图片

bind()只改变this属性但是不调用fn()返回的还是函数

fn.call(obj)如果函数没有私有属性的前提下,才去找共有属性,调用fn输出李四。

 

2018/12.21:函数this的指向

标签:names   私有属性   null   mat   style   技术   就是   替换   info   

原文地址:https://www.cnblogs.com/jinfeixiang/p/10155573.html

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