相关疑难解决方法(0)

什么是JavaScript中对象的"内部插槽"?

我试图在一点上理解ECMAScript 2015规范:对象的内部插槽.但这部分对我来说显得很不清楚,特别是这句话:

内部插槽对应于与对象关联并由各种ECMAScript规范算法使用的内部状态.

(它使用正确的语法吗?)有人能用英语解释这个概念吗?


到目前为止我能理解的是:

  • 内部插槽不是属性
  • 内部插槽在创建对象期间使用,但不会添加到对象本身
  • 最初,内部插槽是或​​具有undefined

javascript object ecmascript-6

18
推荐指数
1
解决办法
1928
查看次数

什么是 Javascript [[环境]] 属性?

我正在阅读Javascript Ninja 的秘密,并试图找出函数的闭包变量的存储位置。[[Environment]]函数标识符上可用的属性:

每当创建一个函数时,对创建该函数的词法环境的引用都存储在名为[[Environment]]的内部(意味着您不能直接访问或操作它)属性中(这是我们将要使用的符号)用于标记这些内部属性)。在我们的例子中,skulk 函数将保留对全局环境的引用,以及对 skulk 环境的报告函数。

我在我的函数上看到的只是[[Scopes]],它包含闭包作用域:

| 在此处输入图片说明

我有两个问题:

  1. [[Environment]]一个 Node.js 的东西,相当于[[Scopes]]前端吗?
  2. 这是检查函数的任何闭包数据的最佳位置吗?

javascript closures

6
推荐指数
1
解决办法
1498
查看次数

如何创建javascript函数对象并获取其内部属性

https://danmartensen.svbtle.com/the-anatomy-of-a-javascript-function#creating-function-instances_3

我试图理解这篇关于如何创建javascript函数对象的文章.它说:

The new instance object is implicitly assigned many internal properties, one being the [[prototype]] property. The Function constructor’s prototype property referencing it’s prototype object is copied into this new object’s [[prototype]] property

基于上面的陈述我写了这段代码:

function Person(){

}

console.dir(Function.prototype);
console.dir(Person.prototype);
Run Code Online (Sandbox Code Playgroud)

根据语句将Function.prototype分配给新创建的函数对象的prototpe(在本例中为Person.prototype).我打印了他们两个.内容看起来不同.

有人可以解释我的理解错误的地方.顺便说一下,我也看了一下Ecmascript的规格,它也有同样的说法

在此输入图像描述

javascript

1
推荐指数
1
解决办法
64
查看次数

标签 统计

javascript ×3

closures ×1

ecmascript-6 ×1

object ×1