javascript — не удается прочитать свойство ‘bind’ из неопределенного, Backbone.js

Невозможно прочитать свойство ‘bind’ из неопределенного, Backbone.js

У меня есть следующая функция с рядом привязок …

 showDialog: function(data) { var dialog = new dialog({ onOk: function(text) { var obj = { data: text.data }; this.model.save(obj, { method: 'PUT', success: function() { this.success().bind(this) }.bind(this) }); }.bind(this) }); Main.dialogArea.show(dialog); } 

Хотя код работает, он выдает следующую ошибку в консоли …

Uncaught TypeError: Невозможно прочитать свойство ‘bind’ из неопределенного

Ошибка связана со следующей строкой this.success().bind(this) .

Я понял, что это исправлено, если я использую var self = this вместо этого …

 showDialog: function(data) { var self = this; var dialog = new dialog({ onOk: function(text) { var obj = { data: text.data }; self.model.save(obj, { method: 'PUT', success: function() { self.success() } }); } }); Main.dialogArea.show(dialog); } 

Если я это сделаю, ошибка исчезнет. Есть идеи, почему это так? Разве оба случая не должны работать одинаково? Я не использую ES6, поэтому я не могу использовать функции стрелок, я хотел бы использовать bind() .

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector