博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你不知道的JS(this)---#
阅读量:5066 次
发布时间:2019-06-12

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

默认绑定

------------

隐式绑定

------------

显式绑定

(apply,call)

硬绑定解决绑定丢失问题(bind)

------------

new绑定

new调用函数时(构造函数调用时)发生步骤

1.创造一个全新的对象

2.这个新对象会被执行[[Prototype]]连接

3.这个新对象会绑定到函数调用的this

4.如果函数没有返回其他对象,自动返回这个新对象

new会改变硬绑定函数的this,使用new硬绑定函数主要是为了预先设置函数的一些参数

------------

判断this

1.是否在new中调用,this=>新创建的对象

2.时候通过apply,call或者硬绑定,this=>指定对象

3.时候有某个上下文对象中调用obj.foo(),this=>obj

4.this=>window(underfined)

 

================

以null,underfunded传入call。。会在调用时候被忽略,会把this默认绑定到全局对象

更安全的做法是使用Object.create(null)

==================

箭头函数的绑定无法被修改

转载于:https://www.cnblogs.com/lemonib/p/10079804.html

你可能感兴趣的文章
python numpy sum函数用法
查看>>
Linux中的SELinux详解--16
查看>>
php变量什么情况下加大括号{}
查看>>
less入门
查看>>
如何实现手游app瘦身?
查看>>
linux程序设计---序
查看>>
OpenGL 笔记<1> 固定管线实例 + 双缓存测试实例
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>
C# Linq获取两个List或数组的差集交集
查看>>
21.Longest Palindromic Substring(最长回文子串)
查看>>
HDU 4635 Strongly connected
查看>>
[WPF]WPF开发方法论
查看>>
【转】先说IEnumerable,我们每天用的foreach你真的懂它吗?
查看>>
springboot web 服务器选择
查看>>
【带流程眼镜的思考】消除“等待”就是提高效率
查看>>
Weka java.lang.reflect.InvocationTargetException
查看>>
shell脚本实现无密码交互的SSH自动登陆
查看>>
Github 新学入门
查看>>
结构体
查看>>
PHP的几种排序算法的比较
查看>>