0

我正在尝试在 Titanium 中创建一个 js 模块(一个 js 文件),它的作用类似于具有静态方法的 java 类,因此我可以要求该类并使用这些方法。结构如下:

var Repository = {
    setProp : function(_args) {
        Ti.App.Properties.setString(_args.name, _args.value);
    },

    getProp : function(_args) {
        var tmp = Ti.App.Properties.getString(_args.name);
        if (tmp)
            return tmp;
        else
            return _args.default_val;
    },

    foo : function () {
    },

    bar : function (error) {
    }

};// end Repository

这包含在一个名为

Repository.js

我尝试将以下行添加到文件末尾

function init() {
    return Repository;
};// end function init

module.exports = init;

在我想在存储库中使用函数的文件中,我执行了以下操作:

var Repo = require('ui/utility/Repository');
var _name = Repo.getProp({name: 'name', default_val: ''}),

但我收到以下错误:

未捕获的类型错误:对象函数 init {return Repository} 没有方法“getProp”

多谢你们

4

1 回答 1

0

在 Javascript 中,您创建了一个名为Repository. 尽管您有一个名为 init() 的函数,但它不会被 require 语句调用。

您根本不需要 init 函数,只需将 Repository.js 更改为

module.exports = Repository;

这个对象将通过需要 Repository.js 来获得,就像你做的一样!

var Repo = require('ui/utility/Repository');
var _name = Repo.getProp({name: 'name', default_val: ''});
于 2013-09-30T21:44:37.997 回答