Ответ 1
Предположим, что вы создали myQuo
, как вы описали
var myQuo = new Quo("confused");
Если вы определяете get_status
как свойство Quo
, то для получения статуса myQuo
вам нужно позвонить Quo.get_status
. Тем не менее, Quo.get_status
должен знать контекст объекта (myQuo), чтобы вернуть правильное значение статуса. Вы можете переопределить функцию, чтобы принять объект в качестве аргумента, как показано ниже:
Quo.get_status = function (quo) {
return quo.status;
};
var status = Quo.get_status(myQuo);
В качестве альтернативы вы можете сохранить функцию Quo.get_status
, как вы ее написали в своем вопросе, но вам нужно будет вызвать эту функцию способом, который связывает myQuo
с "this":
Quo.get_status = function() {
return this.status;
};
var status = Quo.get_status.call(myQuo);
Любое решение неудобно. Предпочтительным решением является использование функциональности Javascript-прототипа и определение get_status
как функции прототипа, которая будет доступна локально для всех объектов Quo
, таких как myQuo
.
Quo.prototype.get_status = function () {
return this.status;
};
var status = myQuo.get_status();