繁体   English   中英

如何在另一个Jquery文件的作用域内访问JQuery函数?

[英]How do access a JQuery function inside a scope in another Jquery file?

我试图将一个较大的JQuery文件重构为较小的文件,但是其中之一是我必须能够在另一个JQuery文件中调用函数,但是我无法使其正常工作。 那么,如何更改此代码,以便可以从File2.js调用File1.js内部的someFunction?

//File1.js
(function (s_diary, $, undefined) {

function someFunction()
{
    alert("Yay");
}

} (window.s_diary= window.s_diary|| {}, jQuery));

//File2.js
(function (s_one, $, undefined) {

function someFunction()
{
    s_diary.someFunction();
}

} (window.s_one= window.s_one|| {}, jQuery));

仔细看一下它的格式,注释和更改以显示要点:

(function (s_diary, $, undefined) {
  // the someFunction function is private to this function
  // it has the same scope as a function parameter or local var
  function someFunction() {
    alert("Yay");
  }
  // but since all functions are just objects...
  // someFunction is now *exposed* as window.s_diary.someFunction
  // see below for why window.s_diary is modified
  s_diary.someFunction = someFunction
}(window.s_diary = window.s_diary || {}, jQuery));

请注意,最后(...)调用先前定义的功能对象,并传入名称window.s_diary已知的对象(如果需要,可以创建它)。 然后在函数内部将“ window.s_diary”对象进行突变 请记住, window全局名称空间 ,因此可用于单个页面上下文中的所有脚本 (只需确保它们以正确的顺序运行。)

快乐的编码。

也许您可以这样操作,如果我没记错的话,它称为“显示模块模式”:

var file1 = (function (s_diary, $, undefined) {

function someFunction()
{
    alert("Yay");
};
return{
    someFunction: someFunction
};
} ());

var file2 = (function (s_one, $, undefined) {

function someFunction()
{
    file1.someFunction();
}

} (window.s_one= window.s_one|| {}, jQuery));

暂无
暂无

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

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