在下面的代碼中,我想通過構造函數使泛型函數可用。該對象用於處理對API的調用。但是如果我從events.POST調用this._isEmpty(obj),它總是返回false。放置_isEmpty()函數的主體確實給出了期望的結果。我該如何解決這個問題? 改善這種結構的任何提示都是可以接受的。 我查找了一些類似的問題,但我發現的問題/答案沒有類似的嵌套。從嵌套對象中失敗的函數調用
我提出以下電話:
var assystBridge = new global.assystBridge();
response.setStatus(assystBridge.events.POST(request, response));
對象:
var assystBridge = Class.create();
assystBridge.prototype = {
initialize: function() {
// Generic functions go here
function _isEmpty(obj){
// Checks whether an object has properties
// Used for checking whether any data was posted or not
// Returns true or false
return Object.keys(obj).length === 0;
}
},
events: {
POST: function(request, response){
var data = request.body.data;
var responseText = '';
if(this._isEmpty(data)){
//if(Object.keys(data).length === 0){
response.setBody({"response":"NO data was posted", "data": data});
return 400;
} else {
return 201;
}
},
GET: function(request, response){
},
DELETE: function(request, response){
}
},
type: 'assystBridge'
};
你如何調用events.POST?你是否實例化了assystBridge類,然後調用instance.events.POST? 我在問你爲什麼要在事件中確定「this」的含義。 – klikas
更新了問題 –
我很驚訝,當您撥打 response.setStatus(assystBridge.events.POST(request,response))時,您不會收到錯誤; 如果以某種方式assystBridge不從其他地方繼承_isEmpty函數,代碼應該正常中斷,因爲它的寫法_isEmpty不是類或成員的原型,它只是initialize方法的私有成員。 – klikas