12、1 in 1..constructor:这行代码的结果,既可能是true,也可能是false

你好,我是周爱民。欢迎你回到我的专栏。 如果你听过上一讲,那么你应该知道,接下来我要与你聊的是JavaScript的面向对象系统。 最早期的JavaScript只有一个非常弱的对象系统。我用过JavaScript 1.0,甚至可能还是最早尝试用它在浏...

JavaScript核心原理解析

13、new X:从构造器到类,为你揭密对象构造的全程

你好,我是周爱民。 今天我只跟你聊一件事,就是JavaScript构造器。标题中的这行代码中规中矩,是我这个专栏题目列表中难得的正经代码。 NOTE:需要稍加说明的是:这行代码在JavaScript 1.x的某些版本或具体实现中是不能使用的。即使E...

JavaScript核心原理解析

14、super.xxx():虽然直到ES10还是个半吊子实现,却也值得一讲

你好,我是周爱民,接下来我们继续讲述JavaScript中的那些奇幻代码。 今天要说的内容,打根儿里起还是得从JavaScript的1.0谈起。在此前我已经讲过了,JavaScript 1.0连继承都没有,但是它实现了以“类抄写”为基础的、基本的面向...

JavaScript核心原理解析

15、return Object.create(new.target.prototype):做框架设计的基本功:写一个根类

你好,我是周爱民。 今天这一讲的标题呢,比较长。它是我这个专栏中最长的标题了。不过说起来,这个标题的意义还是很简单的,就是返回一个用Object.create()来创建的对象。 因为用到了return这个子句,所以它显然应该是一个函数中的退出代码,是...

JavaScript核心原理解析

16、[a, b] = {a, b}:让你从一行代码看到对象的本质

你好,我是周爱民。欢迎回到我的专栏。 接下来的两讲,我要讲的仍然是JavaScript中的面向对象。有所不同的是,今天这一讲说的是JavaScript中的对象本质,而下一讲要说的,则是它最原始的形态(也通常称为原子对象)。 说回今天的话题,所谓的“对...

JavaScript核心原理解析

17、Object.setPrototypeOf(x, null):连Brendan Eich都认错,但null值还活着

你好,我是周爱民。欢迎回来继续学习JavaScript。 今天是关于面向对象的最后一讲,上次已经说过,今天这一讲要讨论的是原子对象。关于原子对象的讨论,我们应该从null值讲起。 null值是一个对象。 null值很多人说JavaScript中的nu...

JavaScript核心原理解析