Создать объект, используя значения по умолчанию - PullRequest
0 голосов
/ 02 марта 2012
function Base(x, y) { this._def=0,0; this.x=x; this.y=y; }

Я хочу создать объект двумя способами:

  • Проходные значения

    var b = new Base(2, 3)
    

    (это типичный способ)

  • Использование значений из поля по умолчанию '_def'. Для этого примера 0 должно быть передано «x», а другое 0 - «y». Но я бы хотел, чтобы универсальный способ использовался и вызывался в других конструкторах.

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Я не уверен, что это то, что вы ищете (this._def=0,0 неверный синтаксис), но вы можете попробовать что-то вроде этого:

function Base(x, y) { 
   if (this._def != null) {
      this.x = this._def[0];
      this.y = this._def[1];
   } else {
      this.x = x;
      this.y = y;
      this._def = [0,0];
   }
}

Который затем можно вызвать с помощью:

var obj = { _def = [1, 2] };
obj = Base.call(obj);

Теперь obj.x равно 1, а obj.y равно 2.

0 голосов
/ 02 марта 2012

Если вы используете jQuery в своем проекте, вот как это должно быть:

function Base(options) {
    this._options = $.extend( { x:0, y:0 }, options ) ;
    console.log( [this._options.x, this._options.y] );
}

var b = new Base({x:5, y:1});

Это выдаст

5,1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...