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)代码>:)