"... в этом вопросе необходимое свойство является прямым потомком слова" this ", что в приведенном выше примере не соответствует действительности"
На самом деле, это вероятно, если вы звоните .discount()
из productN
объекта.
Так что вы не будете использовать this.product1.price
, потому что если вы звоните discount
из productN
тогда this
будет ссылкой на productN
.
Просто сделайте это:
this.price;
this.price_was;
... так, чтобы это выглядело как:
var obj = {
product1: {
price: 80,
price_was: 100,
discount: function(){
return 100 - (100 * (this.price/this.price_was));
}
}
};
Опять же, это предполагает, что вы вызываете функцию из объекта productN
.Если нет, было бы полезно, если бы вы показали , как discount
вызывается.