#vue.js #firefox-developer-tools
#vue.js #firefox-разработчик-инструменты
Вопрос:
У меня есть объект JavaScript с некоторыми простыми свойствами:
class Car {
constructor(make, model, gasLeft){
this.make = make;
this.model = model;
this.gasLeft = gasLeft;
}
}
var myCar = new Car("Honda", "Accord", 0);
После подключения этого к экземпляру Vue я могу открыть инструменты разработчика Google Chrome и вызвать myCar.make
и увидеть «Honda» или myCar.gasLeft
и увидеть 0.
Я также могу просто ввести myCar
и просмотреть все его свойства в списке.
Однако в инструментах разработчика Firefox, просто набрав myCar
и нажав «вызвать getter» для gasLeft, gasLeft отображается как "undefined"
. Но когда я набираю myCar.gasLeft
, он возвращает 0.
Если я правильно понимаю, Vue.js добавляет геттеры к свойствам, которые он может, так что я на самом деле вызываю get gasLeft()
функцию за кулисами. Но почему Firefox возвращает undefined
, а Chrome возвращает 0? Кроме того, расширение Vue dev tool в обоих браузерах знает gasLeft
, что значение равно 0.
Комментарии:
1. Что вы подразумеваете под «после подключения этого к экземпляру Vue»?
2. Итак, у меня есть мой
myCar
объект. Вwindow.onload
функции я делаюnew Vue({el: "#main", data: {car: myCar}})
, в основном подключая объект к объекту Vue. Vue изменяет любые свойства вmyCar
объекте, чтобы иметь геттеры и сеттеры, а не только стандартные свойства.