Как в JS добавить свойство объекта через метод этого же объекта?

Это, наверное, не должно быть сложно, но сижу битый час и не догоняю. Помогите догнать.


var attr = {

    add: function(name, val) {

        this.name = val;

    }

};

attr.add('title', 'Title');

attr.add('href', '#');


В Итоге получаю закономерный вывод:

attr.name = '#'


Но как заставить работать ту логику за которой я гонюсь :)

attr.title = 'Title'

attr.href = '#'


Даже не знал как правильно и доходчиво составить воспрос.


Спасибо.
  • Вопрос задан
  • 10832 просмотра
Решения вопроса 1
Majak
@Majak Автор вопроса
Не знаю на сколько и чем такой способ плох, но вроде работает :)
var attr = {
add: function(name, val) {
this[name] = val;
}
};
ну вот, сам спросил и сам ответил.

Но было бы инетресно услышать правильный ответ :) Спасибо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@s0rr0w
А зачем такие сложности с методом, если можно использовать просто

attr.title = 'Title';
attr.href = '#';

И будет тот же результат…
Ответ написан
Majak
@Majak Автор вопроса
«если звезды зажигают — значит — это кому-нибудь нужно»

К примеру у тега могут быть разные атрибуты, какие именно (class id style selected или специальные какие-нибудь) заранее неизвестно.
А так автоматически можно создавать объект, только с теми атрибутами которые есть у того тега
в одном случае мы получим a.attr.href и a.attr.title, а в другом img.attr.alt и img.attr.src
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы