繁体   English   中英

来自外部脚本的可重用功能

[英]Reusable function from an external script

简化示例:

// 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
});

正如我们所说的,我在2个不同的文件中复制粘贴了一些函数/变量。 我很好奇RequireJS是否可以解决这个问题...

如果需要使用jQuery,则只需在加载jQuery之后声明您的函数本身,但无需在document.ready上声明该函数,只需随后执行即可 做您想做的最简单的方法是:

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

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

这只是将您的函数传递给$() ,后者将其计划在document.ready运行,或者如果文档已经准备好则立即运行

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

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

因此,您需要执行全局功能。 您可以通过不同的方式实现:

var hidePanel = function() {
});

function hidePanel() {
}

PS:我建议您学习javascript的OO模式:-) Javascript面向对象的编程| 第1部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM