gpt4 book ai didi

javascript - 使用 jQuery/javascript 创建一个类

转载 作者:行者123 更新时间:2023-11-30 06:00:36 24 4
gpt4 key购买 nike

在一个页面中我创建了一个类(MyClass)的实例,这个类有2个方法。但我想做两件事:

  1. (1)中,设置值this.message
  2. (2)中,调用类的信息方法或其他方法

谢谢

<script type="text/javascript">
$(document).ready(function () {
var myClass = new MyClass("MyParam");
$('#Target').click(function (event) {
myClass.save("Test");
});
});
</script>

function MyClass(myParam) {
this.myParam = myParam;
this.isError = false;
this.message = "";
}

// Define the class methods.
MyClass.prototype = {
save: function (action) {
**(2)**
},
information: function (action) {
**(1)**
}
};

更新1

当我执行下面的代码时,information 中的 data 值显示为 undifined

MyClass.prototype = {

click: function (action) {
var myData;
$.post(....., $("form").serialize(),
function (data) {
myData = data;
});

this.isError = this.information(myData);
},

information: function (data) {
alert(data);
return true;
}

};

最佳答案

saveinformation 函数中,this 应该是当前的MyClass 对象。

因此,在 save 中,this.message 应该起作用,在 information 中,this.save() 应该可以。

更新:

click: function (action) {
var myData;
$.post(....., $("form").serialize(),
function (data) {
myData = data;
});

this.isError = this.information(myData);
}

$.post 是一个 AJAX 请求并异步运行。这意味着 this.isError = this.information(myData); 完成之前运行,因此 myDataundefined。您需要从回调内部调用 this.information

在回调中,this 将不再是您的 MyClass 对象,因此我们需要保存对它的引用。像这样:

click: function (action) {
var that = this;
$.post(....., $("form").serialize(),
function (data) {
that.isError = that.information(data);
});
}

关于javascript - 使用 jQuery/javascript 创建一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8855661/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com