类属性的 Javascript 范围

标签 javascript ajax class scope

所以,我有这段代码(已删除)

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 调用的上下文更改为类别
  • 框选类别变量 ( var s=Categories; ...; s.list[ctg.Id] = ctg; Categories = s; )
  • 创建一个新方法,将新类别附加到列表

这些都不起作用。

更多信息

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

以前的版本包含整个版本的 Category 类,以及一堆与用户版本相同的代码,效果非常好。

<小时/>

已解决

事实证明我的代码中有一个拼写错误。

  Categories.list[ctg.id] = ctg;

应该是

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

最佳答案

有一个错别字:

Categories.list[ctg.id] = ctg;

ctg.id 应为 ctg.Id

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

相关文章:

r - 在 R 中创建新的 S3 类方法

javascript - 为 AJAX 序列化表单值

jquery 等待 .ajax() 在 .each() 迭代内完成

python - 让所有属性出现在 python 的 `__dict__` 方法上

javascript - 选择的 jquery 插件的输入限制

javascript - JQUERY AJAX $_POST 为空

java - 创建对象时如何修复 "Error: Cannot find symbol"?

javascript - 使用 jQuery 的外部 API GET() 请求

javascript - 为什么 if 语句优于 switch 语句?

Javascript 换行符抛出错误