将全局变量导入CoffeeScript作用域
我有以下简单的咖啡文件:将全局变量导入CoffeeScript作用域,coffeescript,Coffeescript,我有以下简单的咖啡文件: 'use strict' $("#subForm").submit() 这将创建JavaScript文件: (function() { 'use strict'; $("#subForm").submit(); }).call(this); 我真正需要的是: (function($) { 'use strict'; $("#subForm").submit(); })($); 我该怎么做?我需要这样做吗 这是一个Chrome扩展。因为Coffee
'use strict'
$("#subForm").submit()
这将创建JavaScript文件:
(function() {
'use strict';
$("#subForm").submit();
}).call(this);
我真正需要的是:
(function($) {
'use strict';
$("#subForm").submit();
})($);
我该怎么做?我需要这样做吗
这是一个Chrome扩展。因为CoffeeScript被编译成IIFE(因此被屏蔽在全局范围之外),所以您只需在脚本的开头使用正则变量赋值,作为全局导入的替代:
“严格使用”
$=jQuery
$(“#子窗体”).submit()
这将编译为:
(function() {
'use strict';
var $;
$ = jQuery;
$("#subForm").submit();
}).call(this);
就我所见,将全局变量作为参数传递给一个封闭的IIFE并不能提供任何额外的好处
上述操作之所以有效,是因为$
和jQuery
是不同的标识符,但如果您希望全局导入不涉及不同的名称,则可以使用@
引用全局对象,并以这种方式进行“导入”:
“严格使用”
$=jQuery
窗口=@
document=@document
$(“#子窗体”).submit()