Javascript 来自外部脚本的可重用函数

Javascript 来自外部脚本的可重用函数,javascript,jquery,Javascript,Jquery,简化示例: // path/to/js/panel.js $(function(){ var hidePanel = function(){ //hides the panel div }; }); // path/to/js/another-script.js $(function(){ hidePanel(); //out of scope MEGA-FAIL }); 正如我们所说,我将一些函数/变量复制粘贴到两个不同的文件中。 我很好奇Requi

简化示例:

// path/to/js/panel.js
$(function(){
    var hidePanel = function(){
        //hides the panel div
    };
});

// path/to/js/another-script.js
$(function(){
    hidePanel(); //out of scope MEGA-FAIL
});
正如我们所说,我将一些函数/变量复制粘贴到两个不同的文件中。 我很好奇RequireJS是否能解决这个问题

// path/to/js/panel.js
$(function(){
    var hidePanel = function(){
        //hides the panel div
    };
});
使用此代码可以创建一个匿名函数。匿名函数不会污染全局命名空间。匿名函数中声明的所有变量(在本例中为hidePanel)在匿名函数外部不可见。 因此,该功能不可用

所以你需要做一个全局函数。 您可以通过不同的方式实现:

var hidePanel = function() {
});

附言:我建议您学习javascript的OO模式:-)

使用此代码可以创建一个匿名函数。匿名函数不会污染全局命名空间。匿名函数中声明的所有变量(在本例中为hidePanel)在匿名函数外部不可见。 因此,该功能不可用

所以你需要做一个全局函数。 您可以通过不同的方式实现:

var hidePanel = function() {
});

附言:我建议您学习javascript的OO模式:-)

如果需要jQuery,则在加载jQuery后只需声明函数本身,但不需要在
文档中声明。就绪
,然后执行即可。做你想做的事情最简单的方法是:

// path/to/js/panel.js
function hidePanel() {
 //hides the panel div
}

// path/to/js/another-script.js
$(hidePanel);

这只是将函数传递给。

如果需要jQuery,则在加载jQuery后只需声明函数本身,但不需要在
文档中声明。就绪
,然后执行即可。做你想做的事情最简单的方法是:

// path/to/js/panel.js
function hidePanel() {
 //hides the panel div
}

// path/to/js/another-script.js
$(hidePanel);

这只是将您的函数传递给。

我目前正在阅读Stoyan Stefanov的《面向对象的Javascript》一书,并寻找消除现有项目复杂性的方法。我目前正在阅读《面向对象的Javascript》Stoyan Stefanov撰写的书,正在寻找消除现有项目复杂性的方法。这将在简化的案例场景中起作用,但panel.js有各种变量,我打算在“另一个script.js”中使用它们。在这种情况下,我想我必须创建一个Panel()对象。:)@fus0n-您可以这样做,或者如果您只需要一个副本:
var Panel={hide:function(){…},otherFunc:function(){…}可以。我不明白,我可以使用$(面板);然后使用Panel.hide();在“other script.js”@fuSi0N-对于
other script.js
如果要运行hide函数,它将是:
$(Panel.hide):)这将在简化的案例场景中工作,但是panel.js有各种变量,我打算在“另一个script.js”中使用它们。在这种情况下,我想我必须创建一个Panel()对象。:)@fus0n-您可以这样做,或者如果您只需要一个副本:
var Panel={hide:function(){…},otherFunc:function(){…}可以。我不明白,我可以使用$(面板);然后使用Panel.hide();在“other script.js”@fuSi0N-对于
other script.js
如果要运行hide函数,它将是:
$(Panel.hide):)