摘要:从规范中理解本以为对中的已经很熟练了,再看完冴羽的博客后,才发现自己对规范知之甚少,原来我都是根据经验在判断,这篇文章会从最底层的规范上去介绍的判断。本文已同步到个人博客从规范中理解,感谢鼓励。
从 ES 规范 中理解 this
本以为对 JS 中的 this 已经很熟练了,再看完冴羽的博客后,才发现自己对 ES 规范知之甚少,原来我都是根据经验在判断 this,这篇文章会从最底层的 ES 规范上去介绍 this 的判断。
本文已同步到个人博客从 ES 规范 中理解 this,感谢鼓励。
一道测试题引发的思考第一次做这道题时,只对了第一题。。
var value = 1; var foo = { value: 2, bar: function() { return this.value; } }; //示例1 console.log(foo.bar()); //示例2 console.log((foo.bar)()); //示例3 console.log((foo.bar = foo.bar)()); //示例4 console.log((false || foo.bar)()); //示例5 console.log((foo.bar, foo.bar)());
先想一想这道题的答案,然后解释一下原因。
规范文档要彻底弄明白上面的测试题,还得看规范文档
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/99306.html
摘要:有三个重要组成部分和。参考小结函数中的是由调用函数的方式决定的。构造函数中的当构造函数通过操作符来调用时,表示正在创建的对象。情况没有明确作用对象的情况下,通常为全局对象例如函数的回调函数,它的就是全局对象。 一. this的来源 this是JavaScript的关键字,它最初应该是从Java、C++等面向对象的语言中借鉴来的。 比如,在Java中没有函数只有方法,this只能用在类的...
摘要:简单的函数调用显而易见,一直用调用函数将会非常烦人。规范说几乎总是被传递,但不在严格模式下时被调用函数应该将其更改为全局对象。实际上,规范有一个和都使用的原语内部称为。 过去很多年里,我看到过太多关于JavaScript函数调用的混淆。尤其是,很多人抱怨函数调用中this的语义令人困惑。在我看来,通过理解核心函数调用原语,然后将其他所有调用函数的方法视为在原语之上的语法糖,如此便可澄清...
摘要:本文总结了的各种情况,并从规范的角度探讨了的具体实现,希望对大家理解有所帮助。规范规范里面详细介绍了的实现细节,通过阅读规范,我们可以更准确的理解上述四种情况到底是怎么回事。由于本人能力有限,如有理解错误的地方还望指出。 this是面向对象编程中的一个概念,它一般指向当前方法调用所在的对象,这一点在java、c++这类比较严格的面向对象编程语言里是非常明确的。但是在javascript...
摘要:目前主流的模块规范模块通用模块如果你在文件头部看到这样的代码,那么这个文件使用的就是规范实际上就是全局变量这三种风格的结合这段代码就是对当前运行环境的判断,如果是环境就是使用规范,如果不是就判断是否为环境,最后导出全局变量有了后我们的代码和 目前主流的模块规范 UMD CommonJs es6 module umd 模块(通用模块) (function (global, facto...
摘要:在规范中,引入了的概念。使用中的声明一个类,是非常简单的事。中面向对象实例化的背后原理,实际上就是原型对象。与区别理解上述原理后,还需要注意与属性的区别。实际上,在中,类继承的本质依旧是原型对象。 在 ES6 规范中,引入了 class 的概念。使得 JS 开发者终于告别了,直接使用原型对象模仿面向对象中的类和类继承时代。 但是JS 中并没有一个真正的 class 原始类型, clas...
阅读 1441·2021-11-22 09:34
阅读 3265·2021-09-29 09:35
阅读 523·2021-09-04 16:40
阅读 2896·2019-08-30 15:53
阅读 2560·2019-08-30 15:44
阅读 2563·2019-08-30 14:10
阅读 1304·2019-08-29 18:43
阅读 2188·2019-08-29 13:26