我有一个javascript函数抱怨它的主体内的调用不是被调用之前的函数。有人可以帮我解释一下吗?
上下文:我正在使用Meteor和Collection2,并且希望使用一个函数在模式的不同属性上重用。确切地说,我想执行以下操作:
function foo (autoVal, self){
if(something){
return autoVal;
}else{
return self.unset();
}
}
export const myCollection = new Mongo.Collection('myCollection');
const Schema = new SimpleSchema({
my_field:{
type:Boolean,
autoValue: foo(false,this),
}
});
myCollection.attachSchema(Schema);
保存并运行Meteor时,它不会启动,并且出现以下错误消息:
TypeError: self.unset is not a function
我觉得我缺少有关如何调用或执行javascript函数的信息,有人可以指出为什么会这样吗?
最佳答案
尝试这个:
function foo (autoVal, self){
if(something){
return autoVal;
}else{
return self.unset();
}
}
export const myCollection = new Mongo.Collection('myCollection');
const Schema = new SimpleSchema({
my_field:{
type:Boolean,
autoValue() {
return foo(false, this);
}
}
});
myCollection.attachSchema(Schema);