首先:我使用了一个相当模糊的javascript嵌入式实现作为Adobe InDesign CS3的脚本引擎.这种实现有时偏离"标准"javascript,因此我的问题.
我正在使用John Resig的jsdiff库(源于此处)来比较两个文档之间的文本选择.jsdiff使用vanilla对象作为关联数组,将文本中的单词映射到另一个对象.(参见第129行附近的jsdiff.js中的"ns"和"os"变量.)
当文本中出现"反映"这个词时,我的头痛开始了."reflect"是所有对象的默认只读属性.当jsdiff尝试将关联数组的值分配给ns ['reflect']时,一切都会爆炸.
我的问题:这有什么方法吗?有没有办法在不使用明显的vanilla对象的情况下在javascript中执行哈希表?
基本规则:切换脚本引擎不是一种选择.:)
你可能会"提出错误的问题"(正如Raymond Chen所说); 而不是试图避免使用vanilla对象,尝试更改关联数组成员的命名方式.
我试图接近这个的方式:而不是有一个数组成员ns ["reflect"],改变jsdiff构建数组的方式,以便成员是ns ["_ reflect"]或其他一些变体.