Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用javascript类私有字段的google闭包编译器解析器错误

使用javascript类私有字段的google闭包编译器解析器错误
EN

Stack Overflow用户
提问于 2022-09-23 02:29:16
回答 1查看 25关注 0票数 0

使用Google闭包编译器获取JavaScript私有类字段的解析器错误,尽管根据MDN得到了广泛支持。推广他们的例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class ClassWithPrivateField {
  #privateField;

  constructor() {
    this.#privateField = 42;
  }

  getPrivate() {
    return this.#privateField;
  }
}

console.log("private field", new ClassWithPrivateField().getPrivate());

将上述内容保存到private.js中,并在节点容器中运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run \
        --workdir /home/node/app \
        --rm -t -v $PWD:/home/node/app \
        node:18 bash -c \
        "node private.js"
private field 42

控制台输出在上面的最后一行上正确显示。现在如果我们通过google-closure-compiler运行它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run \
        --workdir /home/node/app \
        --rm -t -v $PWD:/home/node/app \
        node:18 bash -c \
        "npm i -g google-closure-compiler && google-closure-compiler --js /home/node/app/private.js"

这是最后的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/home/node/app/private.js:2:2: ERROR - [JSC_PARSE_ERROR] Parse error. '}' expected
  2|   #privateField;
       ^

1 error(s), 0 warning(s)

我从一个Github哨所那里得到了这样的印象:这个特性还不受支持,对吗?如果我想使用私有字段,是否有解决方案或解决办法?即使忽略此错误以允许编译继续,也是可以接受的。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-09-24 09:13:42

闭包编译器还不支持私有字段。周围的工作太不使用私有字段或使用像Babel一样的东西来翻译它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73826369

复制
相关文章
javaScript 递归 闭包 私有变量
递归   递归的概念     在程序中函数直接或者间接调用自己。      跳出结构,有了跳出才有结果。    递归的思想      递归的调用,最终还是要转换为自己这个函数。    应用    function sum(n){   if(n ==1) return 1;   return sum(n-1) + n   }   sum(100)   var fib = function (n){   if(n <=2){   return 1;   }
用户1197315
2019/12/11
5450
JavaScript 私有类字段和 TypeScript 私有修饰符
在本文中,我们将对 JavaScript 私有类字段进行一些说明,并了解它们与 TypeScript 私有修饰符的区别。
疯狂的技术宅
2020/02/18
2K0
Javascript闭包
越来越觉得国内没有教书育人的氛围,为了弄懂JS的闭包,我使出了我英语四级吃奶的劲去google上搜寻着有关闭包的解释,当我看到stackoverflow上这一篇解答,我脑中就出现了一句话:就是这货没跑了!
用户1065635
2019/03/21
7830
JavaScript闭包
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
7300
JavaScript闭包
在JavaScript中,闭包是指在一个函数内部创建另一个函数,并且这个内部函数可以访问其外部函数的变量、参数和内部函数自身的局部变量。简而言之,闭包是一个包含有自由变量的函数,这些变量被绑定在函数创建时所处的环境中。
堕落飞鸟
2023/05/17
8220
JavaScript 闭包
闭包: 闭包是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。 也就是,两个嵌套关系的函数,内部函数可以访问外部函数定义的变量。 是通过作用域链,进行逐层查找并访问的 闭包的优点: 形成私有化空间,避免全局变量污染 持久化内存,保存数据 闭包的缺点: 由于持久化内存,导致内存泄漏 闭包主要用用场景: 实现分段计算 数据保护 缓存数据 闭包例子 function makeFunc() { const uname = 'Tricia' function di
且陶陶
2023/04/12
4400
javascript - 闭包
今天群里聊到JS的闭包,说是不理解。我看了下那个PDF的截图上的内容,。。。。我就看了一小会,反正也没看太看懂,写的太玄幻。。 我就觉得这个吧,看不懂闭包,其实也正常。因为看懂了反正一时你也用不上。。看不懂别着急,慢慢的就看懂了。 ============ 直白点讲,闭包就是函数套函数, function a(){ var aVal = '123'; function b(){ console.log( aVal ); } return b; } a()(); //123 这,就是一个最简单的闭包
web前端教室
2018/02/06
5880
JavaScript闭包
函数和对其词法环境lexical environment的引用捆绑在一起构成闭包,也就是说,闭包可以让你从内部函数访问外部函数作用域。在JavaScript,函数在每次创建时生成闭包。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。
WindRunnerMax
2020/10/20
1.1K0
JavaScript闭包
init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。displayName() 是定义在 init() 里的内部函数,并且仅在 init() 函数体内可用。displayName() 没有自己的局部变量。然而,因为它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name 。
闲花手札
2021/11/15
6040
Javascript 闭包
1. 创建一个函数poll,它接受两个参数checkStatus[函数],callback[函数]。 2. poll会调用checkStatus,checkStatus返回true或者false。 3. 如果checkStatus返回true,调用callback并结束 4. 如果checkStatus返回false,1.5秒后继续调用checkStatus,如果还是返回false,1.5×2秒后继续调用checkStatus,还是false的话,1.5×3秒后继续调用,以此类推。 5. 不可以使用全局变量。
上山打老虎了
2022/06/14
3460
JavaScript闭包
其实关于闭包各个论坛社区里都有很多的文章来讲它,毕竟闭包是JavaScript中一个特色,也正因为这个雨中不同的特色也让闭包理解起来有一些吃力。笔者在这里不仅仅是想介绍闭包,也向列举一些笔者所见过的一些闭包,如果有读者还有一些比较经典的闭包例子,希望可以在评论区里留一下,谢谢。
IMWeb前端团队
2019/12/03
4660
javascript闭包
## 定义 **闭包:**有权访问另一个函数作用域中的变量的函数。 ## 解析 相信刚看到这个定义,很多人肯定很迷糊,现在给出示例。 ``` function func1(){ var a = 1; function func2(){ a++; console.log(a); }; return func2; } var res = func1();//等于func2 res();//等于func2(),输出2 ``` 首先定义了func1,
用户1624346
2018/04/10
7660
JavaScript 闭包
闭包(closure)是 Javascript 语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
RiemannHypothesis
2022/10/28
3830
JavaScript闭包
输入:f1 输出:function f1() //返回一个function对象的f1
HaC
2020/12/30
3310
JavaScript闭包
JavaScript闭包
IMWeb前端团队
2017/12/29
7340
JavaScript闭包
有权访问另一个函数作用域内变量的函数都是闭包。这里 couter 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。 再来看一段代码:
grain先森
2019/05/05
7010
JavaScript闭包
JavaScript闭包
做前端的可太需要了解闭包了,几乎每个面试都会问到闭包,闭包的重要性不言而喻。什么是闭包:闭包一般是指那些引用了另一个函数作用域中变量的函数,通常是在嵌套函数中实现的。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。
大熊G
2022/11/14
3600
Javascript 闭包
一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。
超级大帅比
2021/09/05
4230
JavaScript 闭包
全局和局部变量即便名称相同,它们也是两个不同的变量。修改其中一个,不会影响另一个的值。
陈不成i
2021/07/19
3010
javascript 闭包
在A中返回B的引用 如果一个对象不再被引用,那么这个对象就会被GC回收,否则这个对象一直会保存在内存中。
达达前端
2019/07/15
4330

相似问题

Google闭包编译器javascript解析错误

17

使用google闭包编译器解析javascript源

25

Google闭包编译器分析错误

14

使用Google闭包编译器

34

使用闭包编译器的JavaScript类的实现

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文