Я хочу переписать прототип модели Backbone с использованием underscore.js. Это мой код:Javascript: переписывание прототипа модели Backbone
_.extend(TableView.prototype, {
el: $("#" + this.id + "_div"),
});
В заключение, я хочу, что по умолчанию модель прикрепляется к HTML элементу с идентификатором, равным идентификатору модели плюс «_div». Идентификатор модели - это атрибут TableView
id
, и я пытаюсь получить доступ к модели, используя this
. Проблема в том, что я получаю ошибку: «это неопределенно». Зачем?
PS: Я знаю, что правильным способом является расширение модели в новой. Я хочу перезаписать исходный, потому что метод extend() Backbone, похоже, не похож на наследование класса, а my_new_object instanceof TheOldModel
возвращает false
. Во всяком случае, я получаю ту же ошибку и с TableView.extend()
.
PPS: Я расширяю некоторые виды Splunk.
Что вы ожидаете, что 'this' будет ссылаться? К экземпляру 'TableView'? Помните, что 'this' присваивается внутри вызова функции, но вы не имеете в виду' this' внутри любой функции (в приведенном примере). ** Изменить: **: См. [Это] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this). –