访问jQuery范围内的函数
Access of function in jQuery scope
我想在jQuery作用域之外构建一个函数:
(function($) {
function MyObject() {
console.log('foo');
};
}(jQuery));
var $my_object = new MyObject();
但是函数MyObject不可访问:
ReferenceError: MyObject is not defined
然而,如果我在作用域中构建我的函数,它是工作的:
(function($) {
function MyObject() {
console.log('foo');
};
var $my_object = new MyObject();
}(jQuery));
foo
如何在作用域外访问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();
相关文章:
- 获取给定JavaScript范围内的解析函数
- 如何在JavaScript中使用此函数对范围内的所有数字求和
- 如何在 Google 应用脚本中 sendEmail 函数的范围内的唯一非空白列中返回值
- 将数组传递给函数或确保它在范围内
- 我怎样才能重写这个函数,这样我就不会'不必显式地键入范围内的每个IP地址
- 如何在范围内创建全局函数
- 包括js文件和使用jquery就绪范围内的函数
- 我从闭包返回的函数在外部范围内是否可用
- 全局范围内的函数表达式与函数声明的区别
- JavaScript 函数是否在全局范围内的不同<脚本>中
- 从全局范围内的另一个函数 - Javascript 调用函数构造函数的方法
- 在 angularjs 控制器范围内声明函数和属性,但不附加到$scope
- 使用 Jasmine 在角度范围内测试 JavaScript 函数
- 最小化和保护对象内或全局范围内的函数名称
- 为什么当“var”在函数范围内时,它的值不发生变化
- 在Javascript中,如何引用函数范围内的变量,该变量来自在该函数中调用但在其他地方定义的函数
- 访问函数范围内的本地eval
- JS和EXT JS:函数范围内的函数误解
- 全局变量在函数范围内是未定义的
- & # 39;使用严格# 39;在函数范围内没有停止提升