Анонимный класс с MooTools - PullRequest
0 голосов
/ 05 марта 2010

Могу ли я создать анонимный класс (термин java) с помощью фреймворка MooTools js? Предположим, это должно выглядеть так:

A = new Class({
  invoke: function() {
    alert('class');
  } 
});

a = new A({
  invoke: function() {
    this.parent();
    alert('instance');
  },
});

Но я не хочу изменять интерфейс конструктора так, чтобы он принимал дополнительные свойства. Есть ли более удобный способ определения классов, которые используются не более одного раза?

1 Ответ

1 голос
/ 05 марта 2010

Вы можете определить класс только в той области, в которой он будет использоваться, что означает, что класс не будет доступен за пределами этой области. Например, используя самовыполняющуюся функцию:

(function() {

    var MyClass = new Class({
      invoke: function() {
        alert('class');
      } 
    });

    var myObject = new MyClass({
      invoke: function() {
        this.parent();
        alert('instance');
      }
    });

})();

(я исправил несколько ошибок в вашем коде, в том числе пропустил ключевое слово var при объявлении MyClass и myObject и дополнительное , при инициализации myObject.)

...