簡體   English   中英

jQuery作用域中的函數訪問

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM