Вы ссылаетесь на зарплату как this["salary"]
. Если вы сохраните функцию и вызовете ее позже, значение this
будет потеряно. Он привязывается к объекту только в том случае, если вы напрямую вызываете его, как в emp.paycheck()
. Вы можете передать значение this
явно, хотя:
f.call(emp);
Но вы, скорее всего, захотите ссылаться на зарплату в функции как emp["salary"]
, так как это всегда будет работать.
Обратите внимание, что вместо foo["bar"]
вы можете использовать foo.bar
, а часть new Object()
может быть просто:
var emp = {
name: "pooja",
salary: 725,
paycheck: function() {
...
}
};