在我的Node.js应用程序中,我试图使用apply在Stripe库中进行函数调用,因为访问令牌参数是可选的。但是,我遇到了类型错误。
var args = [data];
if(accessToken) {
args.push(accessToken);
}
args.push(function(err, customer) {
...
});
stripe.customers.create.apply(this, args);
Uncaught TypeError: Cannot call method 'createUrlData' of undefined
at /home/codio/workspace/node_modules/stripe/lib/StripeMethod.js:33:24
我相信这是使用严格模式的结果,但让我知道这是否是预期的行为。我正在使用Stripe Node.js库的2.8.0版本。
答案 0 :(得分:0)
可能您的this
未定义,apply
设置被调用函数中的上下文(this
是什么)。在正常情况下,被调用函数的this
将为stripe.customers
,因此请尝试:
stripe.customers.create.apply(stripe.customers, args);