如何在javascript

时间:2016-02-25 19:28:14

标签: javascript object require

如何构造对象以允许初始化与条带API相同:

var stripe = require("stripe")(
  "sk_test_BQokikJOvBiI2HlWgH4olfQ2"
);

我试过这个

var example = (function () {
    function example(api_token) {
        this.token = api_token;
    }
    example.prototype.getSelf = function (callback) {
        //do stuff
    };
    return example;
}());
module.exports = example;

但是在调用Cannot set property 'token' of undefined

时出现var sdk = require('./Example')(API_KEY);错误

1 个答案:

答案 0 :(得分:2)

由于您的函数不是作为构造函数调用的(通过new关键字),因此您需要确保您提供的函数不会以这种方式调用。

你可以这样做:

function Example(api_token) {
    this.token = api_token;
}
// ...prototype, etc.

function example(api_token) {
    return new Example(api_token);
}
module.exports = example;

或根本不使用构造函数,并使用Object.create

var exampleProto = {
    getSelf: function() {
       // ...
    }
};
function example(api_token) {
    var o = Object.create(exampleProto);
    o.token = api_token;
    return o;
}
module.exports = example;