установка свойства класса через конструктор в jquery - PullRequest
0 голосов
/ 03 сентября 2018

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

Я попробовал следующий код

A.js

function ShowClassB()
{

$.getScript('../ClassB.js', function()
{

var objB = new ClassB("a");

});
}

B.js

var ClassA = function(options){

var x;

this.construct = function("a"){

this.x="a";

};
this.construct("a");

}

$(document).ready(function(){

var objA =new ClassA();
console.log(objA.x);

})

Но каждый раз, когда я создавал новый объект. значения свойств сбрасываются. Я только хочу установить в свойстве класса, а не снаружи. Я также пытался создать простой класс и прототипирование. Но это не работает .

пожалуйста, предложите

1 Ответ

0 голосов
/ 03 сентября 2018

Проблема в том, что вы завернули имя аргумента в определение construct() в кавычки. Это синтаксическая ошибка. Удалить эти цитаты.

var ClassA = function(options) {
  var x;
  this.construct = function(value) { // change here
    this.x = value; // and here
  };
  this.construct("a");
}

$(document).ready(function() {
  var objA = new ClassA();
  console.log(objA.x);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Следует отметить, что этот шаблон в значительной степени избыточен, просто используйте фактический конструктор:

function ClassA(options) {
  this.x = options.value;
}

$(document).ready(function() {
  var objA = new ClassA({
    value: 'foo'
  });
  console.log(objA.x);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...