классы JavaScript, как объявить переменную или как включить конструктор в определение класса - PullRequest
0 голосов
/ 08 февраля 2012

Я пишу класс для даты в javascript

Я пытаюсь написать код, подобный этому

var bdate = {

    var today = null,

    //want a construction here

    init : function()
    {
        //this.today = some processing
    },

    isLesser : function()
    {

    }
}

Надеюсь, я ясно изложил свой вопрос в коде.

Можем ли мы сделать это в этом стиле кода.как это называется?классы в javascript или ...?

кроме того, я написал классы не такие, как прототипы ...

Я видел, что есть разные способы работы с классами в javascript и яЯ использовал, но не уверен, почему они должны кодировать таким образом или их концептуальные имена.

Так что я всегда делаю проб и ошибок, и в какой-то момент это работает, а затем я использую этот код.

Я хочу знать, как включить конструктор в приведенный выше код.

Предложения, пожалуйста ...

Ответы [ 2 ]

0 голосов
/ 08 февраля 2012

Вот шаблон, который мне нравится использовать:

(function(window){

  // Constructor
  function BDate(){
    this.today = new Date();
    // blah blah
  }

  // Object of methods, attached to the Bdate's prototype. You can think of these methods as instance methods.
  Bdate.prototype = {
    isLesser: function(){

    },

    isGreater: function(){

    }
  };


  // We're inside an anonymous function, so window has no access to our class. So, we assign the constructor function to a window var of the same name:
  window.BDate = BDate;
})(window);

// We can now use the class like so:
var myDate = new BDate(),
    herDate = new BDate();

myDate.isLesser();
herDate.isGreater();
0 голосов
/ 08 февраля 2012

Я вижу, что вы ответили на свой вопрос, но я настоятельно рекомендую вам использовать Date Object , встроенный в Javascript, и воздерживаться от создания собственного.

...