通过构造函数在jQuery中设置类属性

时间:2018-09-03 07:55:03

标签: jquery class properties

我正在尝试通过构造函数在jquery的单独js文件中设置类属性。值可以正确传递,但问题是它不能保存以备将来使用

我尝试了以下代码

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 :(得分:0)

问题是因为您已经将参数名称用引号括在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>

您应该注意,这种模式在很大程度上是多余的,只需使用 actual 构造函数即可:

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>