0

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

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

所以我可以稍后在需要时打电话给他们,user.friends_list()但现在,我唯一得到的是以下错误:

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

就是不知道去哪里找,有什么建议吗?

4

6 回答 6

2

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

user = {
    friends_list : function(){
        ....
    }
}
于 2013-04-23T09:43:34.677 回答
1

制作用户对象而不是功能

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

并称之为..user.friends_list()

在这里摆弄

于 2013-04-23T09:45:13.880 回答
1

你在这里使用了一个闭包,所以friend_listuser.

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

(function(){
    var somePrivateVariable;

    window.user = {};
    window.user.friend_list = function() {
        // make use of somePrivateVariable...
    };
})();
于 2013-04-23T09:47:04.740 回答
1
user = function() {
this.friends_list = function() {
    $.get('/ajax/user/friends_list', function(data) {
              ......
     });
 };
 return this;
};

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

于 2013-04-23T09:54:20.200 回答
0

你可以看看这个链接

这是代码:

var global = {};

global.sayHello = function (x){
    //do your code here
      console.log('Hello ' + x );  
};
global.sayHello('Kevin');
于 2013-04-23T09:50:54.557 回答
0
user = new function(){
   var private_variable;
   function private_method(){}

   this.global_variable = '';
   this.global_method = function(){};
}
于 2013-04-23T09:55:30.280 回答