我正在尝试通过构造函数在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);
})
但是每次我创建新对象时。属性值重置。我只想在类属性中设置属性,而不是在外部。我还尝试创建简单的类并通过原型制作。但它不起作用。
请提出建议
答案 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>