私の次のコードは動作していますが、私はES6の構文を使用するともう動作しません。何が起きているのか説明してください。なぜこのjavascriptスニペットが機能していないのですか?
このコードは完全に機能しています。
function Library(){ this.books = [];};
Library.prototype.addBook = function(book){
this.books.push(book);
};
Library.prototype.getBook = function(index){
return this.books[index];
};
var m = new Library();
m.addBook('The Demon Haunted World');
m.getBook(0);
// output will be like 'The Demon Haunted World'
次に、構文をある程度ES6に変更しました。 コードは、このように見えた:
function Library(){ this.books = [];};
Library.prototype.addBook = (book) => {
this.books.push(book);
};
Library.prototype.getBook = (index) => {
return this.books[index];
};
var m = new Library();
m.addBook('The Demon Haunted World');
は、なぜこれが動作しませんか?私は次のエラーを取得しています:
VM505:2 Uncaught TypeError: Cannot read property 'push' of undefined(…)
可能な複製(http://stackoverflow.com/questions/31095710/methods-in-es6-objects-using-arrow-functions) – JJJ
これのdontはあなたを表すため、オブジェクト – Beginner