0

我正在尝试使用 JPM 实用程序为 Firefox 构建一个附加组件。如果我将以下内容放在 index.js 中,“bar”会在浏览器控制台中回显,没有任何问题

'use strict';

function Foo() {
    this.$data = false;
}

Foo.prototype.change = function(data) {
    this.$data = data;
};

var Test = new Foo();

Test.change('bar');

console.log(Test.$data);

但是,如果我将以下内容放在名为 test.js 的文件中

'use strict';

function Foo() {
    this.$data = false;
}

Foo.prototype.change = function(data) {
    this.$data = data;
};

module.exports = new Foo;

并从 index.js 中要求它

var Foo = require('js/test');
Foo.change('bar');

我收到一个 TypeError 抱怨 $data 是只读的。如何要求使用构造函数属性的第三方模块?

4

1 回答 1

0

我猜这是出于安全原因。

无论如何,导出 Foo 构造函数并在 index.js 范围内创建 Foo 对象

于 2015-04-02T20:37:32.990 回答