DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?

Как избавиться от new?

function test() {
  var a = 100;
  this.get = function get() {
    return a;
  }
  this.set = function set(v) {
    a = v;
  }
}

q = new test();
console.log(q.get());
q.set(10);
console.log(q.get());

codepen.io/anon/pen/ALrEgb

Как сделать, чтобы можно было писать
q = test();
а не
q = new test();
  • Вопрос задан
  • 215 просмотров
Решения вопроса 5
riot26
@riot26
<:З )~~
function test() {

  if (!(this instanceof test)) {
  	return new test();
  }

  var a = 100;
  this.get = function get() {
    return a;
  }
  this.set = function set(v) {
    a = v;
  }
}

q = test();
console.log(q.get());
q.set(10);
console.log(q.get());


JSFiddle
Ответ написан
Комментировать
romy4
@romy4
Exception handler
test()должен возвращать новый объект new function() { } или просто { }
Ответ написан
Комментировать
dom1n1k
@dom1n1k
Ответ написан
Комментировать
@void01
я бы вообще так написал )))
function test() {
  return {
    _a:100,
    get a() {
      return this._a;
    },
    set a(v) {
      return this._a = v||this._a;
    }
  }
}

q = test();
console.log(q.a);
q.a = 10;
console.log(q.a);
Ответ написан
@artemt
Full-stack developer
function test() {
  var _a = 100;
  return {
    get a() {
      return _a;
    },
    set a(v) {
      return _a = v||_a;
    }
  }
}

q = test();
console.log(q.a);
q.a = 10;
console.log(q.a);
q._a = 'Changed';
console.log(q.a);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы