Трудность с MooTools Class.extend

Рассмотрите следующий код:

var Widget = new Class({
       Implements: [Options],
       options: {
          "name" : "BaseWidget"
       },
       initialize: function(options) {
          alert("Options are: " + JSON.stringify(options)); //alerts "Options are: undefined"
          this.setOptions(options);
          alert("My options are: " + JSON.stringify(this.options)); //alerts "My options are: { 'name' : 'BaseWidget' }"
       },
       getName: function() {
          return this.options.name;   
       }
});

var LayoutWidget = Widget.extend({    
       initialize: function() {
          this.parent({ "name" : "Layout" });
       }
});

alert(new LayoutWidget().getName()); //alerts "BaseWidget"

Я испытываю затруднения в определении, почему аргумент передал в "this.parent ()", призывают, "инициализируют" функцию LayoutWidget, проникает как "неопределенный" в инициализировать функции Виджета.

Я использую MooTools 1.2.2. Кто-то смог бы указать на меня в правильном направлении?

1
задан Erin Drummond 18 June 2010 в 05:35
поделиться

1 ответ

проверьте это: http://www.jsfiddle.net/F4hTS/

небольшая разница в форме.

var Widget = new Class({
    Implements: [Options],
    options: {
        "name" : "BaseWidget"
    },
    initialize: function(options) {
        alert("Options are: " + JSON.stringify(options)); //alerts "Options are: undefined"
        this.setOptions(options);
        alert("My options are: " + JSON.stringify(this.options)); //alerts "My options are: { 'name' : 'BaseWidget' }"
    },
    getName: function() {
        return this.options.name;   
    }
});

Widget.LayoutWidget = new Class({   
    Extends: Widget,
    initialize: function(options) {
        this.parent(options);
    }
});

alert(new Widget.LayoutWidget({ "name" : "Layout" }).getName()); //alerts "Layout"
2
ответ дан 2 September 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: