簡體   English   中英

定義jQuery函數時出現的問題

[英]Issue while defining jQuery functions

嘗試定義幾個函數,如下所示:

user = (function() {
    var friends_list = (function() {
        $.get('/ajax/user/friends_list', function(data) {
                  ......

因此,稍后我可以在需要時像user.friends_list()那樣調用它們,但就目前而言,我唯一得到的是以下錯誤:

TypeError: Object function () {
 var friends_list = (function() {
 $.get(....

我只是不知道還能去哪里,有什么建議嗎?

您需要將用戶創建為一個對象,在您的情況下, friends_list是一個關閉方法,它將在函數外部可用

user = {
    friends_list : function(){
        ....
    }
}

使用戶對象而不起作用

var user = {
  friends_list : function(){
     $.get('/ajax/user/friends_list', function(data) {
              ......
  }
 }

並稱它為.. user.friends_list()

在這里擺弄

您在此處使用閉包,因此在user外部看不到friend_list

如果要使用閉包來隱藏一些變量,則導出friend_list最佳方法是:

(function(){
    var somePrivateVariable;

    window.user = {};
    window.user.friend_list = function() {
        // make use of somePrivateVariable...
    };
})();
user = function() {
this.friends_list = function() {
    $.get('/ajax/user/friends_list', function(data) {
              ......
     });
 };
 return this;
};

以上也應該起作用。 參考http://www.w3schools.com/js/js_objects.asp

您可以查看此鏈接

這是代碼:

var global = {};

global.sayHello = function (x){
    //do your code here
      console.log('Hello ' + x );  
};
global.sayHello('Kevin');
user = new function(){
   var private_variable;
   function private_method(){}

   this.global_variable = '';
   this.global_method = function(){};
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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