我的javascript片段返回“非法字符”

问题描述 投票:0回答:2

我正在尝试获得与this book中找到的示例相对应的代码段。这里是我的Javascript片段:“use strict”

function readObject(target, name, descriptor) {
    return console.log("reading object...: ", target, name, descriptor)
}


class Example {
  a() {}
  @readObject
  b() {}
}

const e = new Example();
e.a = 1;
e.b = 2;

我的控制台返回:

第12行_ SyntaxError:非法字符

我也尝试过:

function readonly(target, name, descriptor) {
  descriptor.writable = false;
  return descriptor;
}


class Example {
  a() {}
  @readonly
  b() {}
}

const e = new Example();
e.a = 1;
e.b = 2;

后来的审判也失败了。

在我看来,我已经定义了readObject

也许我忘记了另一个元素?

任何提示都会很棒,谢谢。

javascript node.js decorator
2个回答
0
投票

似乎它是一个转换器探测器,代码在适当的转换器中工作得更好,例如在jsfiddle中:

https://jsfiddle.net/wergsdba/1/

console.log("go on the link to appreciate the code using ES7")

-1
投票

我猜真正的错误信息是这样的:“必须将前导装饰器附加到类声明”。

装饰器必须在类声明之前,而不是在内部。

编辑你也可以在类属性上使用装饰器。我猜代码应该是这样的:

class Example {
  @readObject
  a = {};
  constructor(){
    //...
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.