[英]Access of function in jQuery scope
我想在jQuery范围之外构建一个函数:
(function($) {
function MyObject() {
console.log('foo');
};
}(jQuery));
var $my_object = new MyObject();
但是函数MyObject是不可访问的:
ReferenceError:未定义MyObject
但是,如果我在范围内构建函数,则可以正常工作:
(function($) {
function MyObject() {
console.log('foo');
};
var $my_object = new MyObject();
}(jQuery));
富
如何访问MyObject超出范围?
我可能不建议这样做,但是您基本上可以通过将函数作为对象的一部分返回并将IIFE分配给这样的变量来完成所需的操作
var library = (function ($) {
var exports = {};
var private = 'see you cant get this';
var MyObject = exports.MyObject = function (_in) {
console.log(_in);
};
var another_func = exports.sum = function (a, b) {
console.log(a + b);
};
return exports;
}(jQuery));
library.MyObject('foobar'); // "foobar"
library.sum(3, 5); // 8
console.log(private); // Uncaught ReferenceError: private is not defined
虽然我不知道为什么要这么做。也许这有帮助
// Define Class globally
// window.MyObject also works
var MyObject = (function($) {
// Passes jQuery in
return function () {
console.log('foo');
};
}(jQuery));
var $my_object = new MyObject();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.