Closed. This question is off-topic。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                        
                        5年前关闭。
                    
                
        

所以,我有此代码(剥离)

var Categories;
Categories = {url:'someurl', list : [] };
Categories.CreateCategory = function ()
{
  // do some checks
  // gather some data

$.ajax( {/*ajax options here, expecting JSON format*/} )
.done(function ( data )
  {
      var ctg = new Category();
      ctg.Id = data.id;
      Categories.list[ctg.id] = ctg;
  } )
}


但是,新类别不会附加到列表中。

我尝试过了


将ajax调用的上下文更改为this或Categories
框类别变量(var s=Categories; ...; s.list[ctg.Id] = ctg; Categories = s; )
创建一个新方法,将新类别添加到列表中


这些都不起作用。

一些更多的信息

该CreateCategory方法旨在在网站的管理面板中使用,这就是为什么我需要在单独的脚本中扩展Categories类的原因。

以前的版本包含Categories类的整个版本,并且有一堆与用户版本相同的代码,它的工作原理很吸引人。



解决了

事实证明,我在代码中有错字。

  Categories.list[ctg.id] = ctg;


应该

  Categories.list[**ctg.Id**] = ctg;

最佳答案

有一个错字:

Categories.list[ctg.id] = ctg;

ctg.id应该是ctg.Id

关于javascript - 类属性的Javascript作用域,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25315166/

10-11 13:09