重新定义RequireJS模块 - 是否可能?

时间:2012-06-02 23:23:31

标签: javascript google-chrome requirejs userscripts

基本上,我访问的页面使用RequireJS。我想对这个页面进行调整,所以我选择了一个用户脚本。在查看客户端代码时,我发现有一个模块定义如下:

define("settings", [], function() {
    return {
    SETTINGA: "100",
    SETTINGB: "200",
    etc.
    }
})

我想将自己的项目添加到设置数组,以及更改一些设置,而无需在我的用户脚本中重新定义模块(带有更改),然后删除/读取它。是否可以只对这个模块进行调整?


P.S。我正在使用Script Injection技术让我的用户脚本与原始页面中的其他javascript进行交互。

此外,在Javascript控制台中执行require("settings")会返回一个对象(不是数组),因此我无法执行require("settings")[0]require("settings").push(...)之类的操作,但是我可以访问这些设置做require("settings").SETTINGA。所以,我不确定如何添加/重新定义设置,因为它不是一个数组?

2 个答案:

答案 0 :(得分:4)

使用此:

require('settings').new_property = 'new value';

答案 1 :(得分:2)

您无法检索或添加设置的原因"设置数组"是你不是要创建一个数组开始。 {foo:bar}对象文字,而不是数组文字([foo,bar])。