如何在javascript中构造对象
我如何构造一个对象以允许以与条带API相同的方式进行初始化:如何在javascript中构造对象,javascript,object,require,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 = functio
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;
但是当调用
var sdk=require('./Example')(API_KEY)时,我得到一个无法设置未定义的属性“token”的错误代码>由于函数不是作为构造函数调用的(通过new
关键字),因此需要确保所提供的函数不会以这种方式调用
您可以这样做:
function Example(api_token) {
this.token = api_token;
}
// ...prototype, etc.
function example(api_token) {
return new Example(api_token);
}
module.exports = example;
或者根本不使用构造函数,而是使用对象。创建:
var exampleProto = {
getSelf: function() {
// ...
}
};
function example(api_token) {
var o = Object.create(exampleProto);
o.token = api_token;
return o;
}
module.exports = example;
由于您的函数不是作为构造函数调用的(通过new
关键字),因此需要确保您提供的函数不会以这种方式调用
您可以这样做:
function Example(api_token) {
this.token = api_token;
}
// ...prototype, etc.
function example(api_token) {
return new Example(api_token);
}
module.exports = example;
或者根本不使用构造函数,而是使用对象。创建:
var exampleProto = {
getSelf: function() {
// ...
}
};
function example(api_token) {
var o = Object.create(exampleProto);
o.token = api_token;
return o;
}
module.exports = example;
不要让函数返回构造函数。或者执行返回函数(token){returnnewexample(token);}
。不要将返回的函数设为构造函数。或者执行returnfunction(token){returnnewexample(token);}
。