我有一个带有以下结构的jquery文件::
(function($) {
var MYTEST= {
init: function() {
alert('Hello World');
}
exec: function() {
alert('function executed');
}
}
$(function() {
MYTEST.init();
})
}(jQuery))
我想访问第二个功能,即' exec'在另一个文件中或jQuery范围之外。明确这样的事情::
(function($) {
var MYTEST= {
.
.
}
}(jQuery))
$(function() {
MYTEST.exec();
})
我知道上面的代码不起作用,只是想知道。如何在外面访问该功能(我实际上并不知道用javascript来解释这种情况的具体行话,对不起)
答案 0 :(得分:1)
简单的答案是将全局范围与命名空间一起使用,这样您就可以在不同的文件中使用该对象。
(function($, win) {
win.MYTEST= {
init: function() {
alert('Hello World');
}
exec: function() {
alert('function executed');
}
}
}(jQuery, window))
如果您正在使用ES6并导出&导入你可以使用模块模式(显然ES6不是必须的,但它更好):
const MYTESTModule = (function($) {
return MYTEST= {
init: function() {
alert('Hello World');
},
exec: function() {
alert('function executed');
}
};
}(jQuery));
export default MYTESTModule;
答案 1 :(得分:0)
尝试从代码中返回函数exec。这称为模块模式。
var MyTESTModule = (function($) {
var MYTEST= {
init: function() {
alert('Hello World');
}
}
$(function() {
Starling.init();
})
return {
exec: function() {
alert('function executed');
}
}
}(jQuery));
MYTESTModule.exec();