1
我有一個javascript函數,抱怨它的正文中的調用在調用之前不是函數。有人能幫我解釋一下嗎?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);
當我保存這個和運行流星,沒有啓動,並且我收到以下錯誤消息:
TypeError: self.unset is not a function
我覺得我我錯過了如何調用或執行JavaScript函數,有人能指出爲什麼會發生這種情況嗎?
沒有足夠的有重現您有任何問題。你應該檢查出http://stackoverflow.com/help/how-to-ask和[MCVE] – pvg
找出當執行這個代碼時'this'是什麼'autoValue:foo(false,this);' - 哦,並認識到foo是在調用'new SimpleSchema'之前執行的(也就是說,這不是有效的javascript,看起來像''foo(false,this)'末尾的';'應該不存在 –
'this'不是你要找的這個'這個' – godfrzero