したがって、これがうまくいくいくつかの例を見ました。しかし、明らかに、私は何かを逃している。 :/オブジェクトプロトタイプは `this 'を使ってプロパティにアクセスできません
誰かが私にここで間違っていることを説明してもらえますか? :)
function Code (b) {
this.b = b
this.arr = []
}
Code.prototype.add = (v) => {
console.log(this.b)
this.arr.forEach(element => {
console.log(element)
});
this.arr.push(v)
}
var c = new Code('bla')
console.log(c.add('asdf'))
だから、これはとエラーがスローされます。明らかに
this.arr.forEach(element => {
^
TypeError: Cannot read property 'forEach' of undefined
、私はここで何か間違ったことをやっています。しかし、私は何を知りません。
ありがとうございます! Gergely。
矢印(またはロケット)関数 'this'は、通常の関数' this'と同じではありません - 一般的には、矢印の機能が –
は、私は同意したオブジェクトのプロトタイプの機能のための右のパターンではありません@ JaromandaXと一緒に。コードを以下から変更してください: 'Code.prototype.add =(v)=> {'これを 'code.prototype.add = function(v){'これで 'this'ポインタを修正します。矢印関数を使うと、 'this'ポインタは関数が宣言された時のものに強制されます。 – Intervalia
'' 'function(element)' '' => –