相关疑难解决方法(0)

分配左侧的Javascript对象括号表示法({Navigation} =)

我以前没有看过这种语法,我想知道它的全部内容.

var { Navigation } = require('react-router');
Run Code Online (Sandbox Code Playgroud)

左侧的括号抛出语法错误:

意外的标记 {

我不确定webpack配置的哪个部分正在转换或者语法的目的是什么.这是和谐的事吗?有人可以开导我吗?

javascript ecmascript-6 webpack

97
推荐指数
4
解决办法
8501
查看次数

为什么逗号运算符会在函数调用中更改“this”

谈话很便宜;给我看代码。

// equals to this.test = "inside window"
var test = "inside window";

function f () {
  console.log(this.test)
};

var a = {
  test: "inside object",
  fn: f
};

a.fn(); // "inside object"   --> fine
(a).fn(); // "inside object"   --> fine
(1, a).fn(); // "inside object"   --> fine
(a.fn)(); // "inside object"   --> fine
(1, a.fn)(); // "inside window"   --> why?

// reference equality check
console.log(
  f === a.fn && 
  (a.fn) === f && 
  f === (1, a.fn)
); // …
Run Code Online (Sandbox Code Playgroud)

javascript this comma-operator

10
推荐指数
2
解决办法
245
查看次数

ECMA-2015 语法语法中的 CoverInitializedName[yield] 是什么

我正在编写自己的 ES6 解析器。但我不明白 ObjectLiteral 中的 CoverInitializedName 是什么。

ECMA-2015 ObjectLiteral 规范中关于此的部分中,我看到

PropertyDefinition[Yield] :
    IdentifierReference[?Yield]
    CoverInitializedName[?Yield] <-- this is what I dont understand
    PropertyName[?Yield] : AssignmentExpression[In, ?Yield]
    MethodDefinition[?Yield]
Run Code Online (Sandbox Code Playgroud)

然后我查找 CoverInitializedName 的定义。

CoverInitializedName[Yield] :
    IdentifierReference[?Yield] Initializer[In, ?Yield]

IdentifierReference[Yield] :
    Identifier
    [~Yield] yield

Initializer[In, Yield] :
    = AssignmentExpression[?In, ?Yield]
Run Code Online (Sandbox Code Playgroud)

初始值设定项以 = 符号开头。

这意味着我可以使用这样的赋值运算符来分配属性。

let o = { prop = value };
Run Code Online (Sandbox Code Playgroud)

如果我执行此代码,它将抛出 SyntaxError: Invalid shorthand property initializer

我感到困惑并查看了MDN 对象初始值设定项文档。 哪有这回事。那么这个 CoverInitializedName 是什么?

[编辑]

loganfsmyth的回答是

({ prop = value } = …
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6

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

标签 统计

javascript ×3

ecmascript-6 ×2

comma-operator ×1

this ×1

webpack ×1