[英]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.