我正在做一些FF插件开发和我看到的语法是这样的:这是什么JavaScript语法:{Ci,CC}?
var {Cc, Ci} = require('chrome');
只是好奇这是什么语法,如果它特别的FF开发或别的东西。
我正在做一些FF插件开发和我看到的语法是这样的:这是什么JavaScript语法:{Ci,CC}?
var {Cc, Ci} = require('chrome');
只是好奇这是什么语法,如果它特别的FF开发或别的东西。
请参阅Domenic关于什么语法称为解构赋值的解答。接下来的答案是为什么FF插件开发需要这样做。
有一个关于这是什么以及为什么需要在http://groups.google.com/group/mozilla-labs-jetpack/browse_thread/thread/d288b79903b5b434的讨论。
简短回答是肯定的,它特定于Firefox插件开发。相关文件可在https://addons.mozilla.org/en-US/developers/docs/sdk/1.3/dev-guide/module-development/chrome.html找到。
错误的答案。这是ECMA 6的语法,只是因为Firefox是第一个实现解构赋值的浏览器并不意味着它只与FIrefox插件开发相关。 – 2014-10-23 14:11:49
我想我回答了一个错误的问题 - 我以为他们问为什么你现在需要为FF插件需要('chrome')'。不幸的是答案被接受了,所以我不能删除它。 – Bill 2014-10-23 16:17:22
啊,明白了!我认为很显然'{...} ='语法在这里很奇怪,因为'require('...')'是一个简单的函数调用。但问题并不明确,你是对的! – 2014-10-24 11:45:47
这被称为解构赋值。它是JavaScript 1.7的一个特性,在这种情况下,“JavaScript”是指Mozilla对ECMAScript标准的特定扩展。
它被预定为inclusion in the next version of JavaScript。
等效的ECMAScript 5的代码将
var __temp = require('chrome');
var Cc = __temp.Cc;
var Ci = __temp.Ci;
非常感谢,我终于摆脱了编辑器中的语法错误,并且我的代码正在被重新评估。 – razzak 2014-08-04 23:19:56
但它实际上是否会导致变量__temp存在?如果不是,那么等值只是一个粗略的等值。 – hippietrail 2016-05-23 15:40:22
我怎样才能防止它是看起来像在Visual Studio + ReSharper的错误?由于它不被认为是JavaScript的自然语法,因此ReSharper不断将其显示为语法错误,并且无法重新格式化文档。 – 2014-08-26 15:02:42
这个*较早的*问题是如何被标记为2013年问的同一事物的欺骗? – ruffin 2017-04-22 18:04:31