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

标签 javascript jquery

在一个页面中我创建了一个类(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/

相关文章:

javascript - 使用 "this"在表之间移动数据

php - 在 ajax 调用后使用 PHP 重定向

javascript - 预置按钮似乎未触发

javascript - 如何使用 Highchart 自动计算最小值和最大值,除非它们高于或低于预定义的最小值和最大值

javascript - Angular 2 : How do I toggle classes on similar elements

Javascript Radio 添加值 Textarea

javascript - 当没有用户事件时自动注销

jquery - 当 id 具有非字母数字字符时,无法使用 Jquery 获取 Select HTML 的值

javascript - 标签或 div 标签中的 data-... 有什么作用

Javascript:访问自己的对象的变量