[译]理解ECMAScript规范(1)
翻译本文的目的是尝试给出ECMAScript规范中核心术语的译法,供同好品评。
原文链接:https://v8.dev/blog/understanding-ecmascript-part-1
在这篇文章里,我们会从规范中找一个简单的功能,借以理解规范中的符号。开始吧!
前言
即便你懂JavaScript,阅读其规范也会让人畏缩。
让我们从一个具体的例子开始,然后通过规范去理解它。下面的代码演示了Object.prototype.hasOwnProperty
的用法:
const o = { foo: 1 };
o.hasOwnProperty('foo'); // true
o.hasOwnProperty('bar'); // false
o
并没有一个叫hasOwnProperty
的属性,因此要沿原型链向上查找。于是,在o
的原型Object.prototype
上找到了它。
为描述Object.prototype.property
的工作原理,规范使用了类似伪代码的说明:
Object.prototype.hasOwnProperty(V)
在以参数V调用
hasOwnProperty
方法时,将执行以下步骤:
- 令
P
为? ToPropertyKey(V)
;- 令
O
为? ToObject(this值)
;- 返回
? HasOwnProperty(O, P)
。
以及