В вашем коде configs
не является публичным членом создаваемого объекта Player
.Вы объявили это без var
, поэтому это глобальная переменная.
configs = $.extend(this.opts, configs);
должно быть:
this.configs = $.extend(this.opts, configs);
Тогда в вашем init()
вы можете сделать the.configs.playerID
.
Пример: http://jsfiddle.net/rCuXa/
(Ваш jsFiddle также имел MooTools, загруженный вместо jQuery. Проверьте меню слева.)
РЕДАКТИРОВАТЬ:
Кстати, поскольку вы звоните init()
из контекста нового объекта Player
, вы действительноНе нужно использовать the
в качестве ссылки на this
.
Внутри init
метода, this
относится к Player
, который был создан, когда вы вызываете его таким образом.
var $player = $("#" + this.configs.playerID);
Пример: http://jsfiddle.net/rCuXa/1/
EDIT2: Дополнительно, если init()
всегда собираетсяЧтобы вызвать его из контекста Player
экземпляра, который вы создаете, вы можете рассмотреть возможность размещения его в prototype
объекте Player
.
Таким образом, он будет использоваться всеми экземплярамивместо воссоздания для каждого:
Player.prototype.init = function(){
// ---------v----------"this" is the instance of Player
var $player = $("#" + this.configs.playerID);
alert($player.attr("id"));
}
Пример: http://jsfiddle.net/rCuXa/2/