定义jQuery函数时出问题

时间:2013-04-23 09:42:17

标签: javascript jquery function

尝试定义几个这样的函数:

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

所以我稍后可以在需要时调用它们user.friends_list(),但就目前而言,我唯一得到的是以下错误:

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

我只是不知道在哪里看,有什么建议吗?

6 个答案:

答案 0 :(得分:2)

你需要创建用户作为一个对象,在你的情况下friends_list是一个闭包方法,它将在函数之外可用

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

答案 1 :(得分:1)

制作用户对象而不是功能

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

并将其称为.. user.friends_list()

fiddle here

答案 2 :(得分:1)

您在这里使用了一个闭包,因此friend_list的外部user是不可见的。

如果你想使用闭包,隐藏一些变量,导出friend_list的最佳方法是:

(function(){
    var somePrivateVariable;

    window.user = {};
    window.user.friend_list = function() {
        // make use of somePrivateVariable...
    };
})();

答案 3 :(得分:1)

user = function() {
this.friends_list = function() {
    $.get('/ajax/user/friends_list', function(data) {
              ......
     });
 };
 return this;
};

以上也应该有效。 参考http://www.w3schools.com/js/js_objects.asp

答案 4 :(得分:0)

您可以查看此link

以下是代码:

var global = {};

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

答案 5 :(得分:0)

user = new function(){
   var private_variable;
   function private_method(){}

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