Для того чтобы полно ответить на ваш вопрос, нам нужно разобраться в некоторых вещах о Vue.js и его особенностях.
Во Vue.js существует понятие вычисляемых свойств (computed properties), которые позволяют создавать геттеры и сеттеры для свойств данных. Геттеры позволяют нам получать значение свойства из компонента, в то время как сеттеры позволяют изменять это значение.
Когда говорят о геттере или сеттере в объекте, обычно имеют в виду использование свойства внутри объекта, как например:
let obj = { get someValue() { return true; } }; console.log(obj.someValue);
Таким образом, при обращении к obj.someValue
, геттер будет вызван и вернет значение true
.
В Vue.js, чтобы определить геттер для свойства, нужно использовать опцию computed
. Например:
new Vue({ computed: { someValue: function() { return true; } } });
В этом случае, someValue
является геттером, который будет возвращать значение true
при обращении к этому свойству в компоненте.
Теперь чтобы понять, почему геттер напрямую равен false
, а в объекте true
, нам нужно рассмотреть контекст использования.
Если говорить о контексте, в котором был задан геттер, то здесь следует уточнить, каким образом вы пытались получить значение геттера напрямую. Если вы сделали это вне контекста компонента Vue или вне опции computed
, то это может быть причиной, почему возвращается false
. Геттеры Vue.js имеют связь с компонентом и могут возвращать значение только внутри этого компонента.
Однако, если в объекте вы обращались к свойству, определенному как геттер, например obj.someValue
, то геттер будет вызван и вернет значение true
, так как мы обращаемся к нему в контексте объекта.
Итак, чтобы получить геттер Vue.js вне компонента, вам необходимо прямо обратиться к опции computed
внутри компонента Vue или использовать this.$options.computed
для доступа к опции computed
извне компонента.
Однако, обращение к геттеру напрямую за пределами указанного контекста компонента может привести к нежелательным результатам и стоит обратить на это внимание.
Надеюсь, это разъяснило ваш вопрос о разнице между геттером, возвращающим false
напрямую, и геттером, возвращающим true
в контексте объекта в Vue.js.