摘要:关键字是个常用的关键字它被自动生成在函数作用域里并代表函数执行环境的上下文如果在开发中不了解绑定在那个对象上会很容易出现绑定的规则默认绑定当函数独立使用没有对象属性的引用进行调用会默认绑定在全局对象或使用严格模式隐形绑定当函数被某个对象的属
this关键字
this是个常用的关键字,它被自动生成在函数作用域里.并代表函数执行环境的上下文.
如果在开发中,不了解this绑定在那个对象上,会很容易出现bug.
当函数独立使用,(没有对象属性的引用进行调用).
this会默认绑定在全局对象或undefined.
var log = function () { console.log(this) } log() //window 使用严格模式 "use strict"; var log = function () { console.log(this) } log() //undefined隐形绑定
当函数被某个对象的属性引用后调用.
this会绑定在该对象上.
var obj = { log: function () { console.log(this); } } obj.log() //obj显性绑定
当函数调用时,指定函数的this绑定对象.
涉及的方法有call、apply和bind.
var log = function () { console.log(this) } var target = {} var bindLog = log.bind(target) bindLog() //target log.call(target) //target log.apply(target) //target
显性绑定的优先级比隐形绑定高
function log() { console.log(this.name) } var visibleObj = { name: "visible" } var hideObj = { name: "hide", log: log } hideObj.log.call(visibleObj) //visiblenew绑定
当实例一个构造函数时.
构造函数的this会绑定在实例上.
function construct(tag) { this.tag = tag; } var instance = new construct("instance") console.log(instance.tag) //instance
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/95860.html
摘要:我们不能迷失在各种新技术里,主要我们就会把简单的问题度复杂化了,会把我们的前端变的很复杂。我们的代码变得怪异难懂我不知道从什么时候,前端的代码写的越难懂就越能显示水平。 前端发展了也有些年头了,曾记得很多年前,聊起前端,都觉得是很简单,那个时候都没有前端工程师这个职位。可现在,前端已经逆袭了,已经不是原来的样子了,各种技术层出不穷,显的越来越高深莫测了。前端真的变得那么难了吗?在我看来...
摘要:我们不能迷失在各种新技术里,主要我们就会把简单的问题度复杂化了,会把我们的前端变的很复杂。我们的代码变得怪异难懂我不知道从什么时候,前端的代码写的越难懂就越能显示水平。 前端发展了也有些年头了,曾记得很多年前,聊起前端,都觉得是很简单,那个时候都没有前端工程师这个职位。可现在,前端已经逆袭了,已经不是原来的样子了,各种技术层出不穷,显的越来越高深莫测了。前端真的变得那么难了吗?在我看来...
摘要:我们不能迷失在各种新技术里,主要我们就会把简单的问题度复杂化了,会把我们的前端变的很复杂。我们的代码变得怪异难懂我不知道从什么时候,前端的代码写的越难懂就越能显示水平。 前端发展了也有些年头了,曾记得很多年前,聊起前端,都觉得是很简单,那个时候都没有前端工程师这个职位。可现在,前端已经逆袭了,已经不是原来的样子 了,各种技术层出不穷,显的越来越高深莫测了。前端真的变得那么难了吗?在我看...
阅读 2131·2023-04-25 20:45
阅读 1035·2021-09-22 15:13
阅读 3620·2021-09-04 16:48
阅读 2567·2019-08-30 15:53
阅读 910·2019-08-30 15:44
阅读 883·2019-08-30 15:43
阅读 974·2019-08-29 16:33
阅读 3418·2019-08-29 13:08