0
コンストラクタ関数のプロトタイプメソッドでは、この特性に到達することはできませんが、私はnodeJSは - (私はコンストラクタ関数のプロパティを記述しています
console.log(this)
でindex.jsその表示されていない性質でServer.request
メソッドを呼び出したときには、{}
を出力します空のオブジェクト)
コンストラクタ
function Server(){
if(!(this instanceof Server)) return new Server()
this.actions = { // accepted actions
login: {
post: [['email', 'username'], 'password']
},
register: {
post: 'name,surname,password,email,haveLicence,licenceKey'.split(',')
}
}
}
要求機能
Server.prototype.request = (req /* express request object */)=>{
console.log(this) // {}
return new Promise((r,j)=>{
let action = (req.url.match(/[a-z\-]+/i) || [])[0]
if(!action) return r([400, 'NoAction']);
action = this.actions[action] // Cannot read property 'register' of undefined.
...
}
私はこの質問にインスピレーションを得た例を追加しました:https://stackoverflow.com/questions/34361379/arrow関数-vs-function-declaration-expressions-are-they-equivalent-exch/47318407#47318407 – loretoparisi