繁体   English   中英

如何将对象发送到类参数javascript?

[英]How to send object to class parameter javascript?

我在向类发送参数时遇到问题。 我想做一个支持AJAX错误的类。 工作功能如下所示:

function GetLastChangePass(UserId) {
    var field =
    {
        id: UserId,
    }
    var fieldStringified = JSON.stringify(field)
    $.ajax({
        url: "/Users/LastChangePass",
        method: 'PUT',
        data: fieldStringified,
        contentType: 'application/json; charset=utf-8',
        success: (result) => {
            if (result.includes('12.12.2000')) {
                document.querySelector('#user-tslog').append('')
            } else if (result == 'Not_tslog') {
                document.querySelector('#user-tslog').append('')
            }
            else {
                document.querySelector('#user-tslog').append(result)
            }
        },
        error: (result) => {
            addNewMessage("error", "Error")
            console.error("fail responseText: " + result.responseText)
            console.error("fail contentstatusText : " + result.statusText)
            console.error("fail status  TEST: " + result.status)
        }
    });
}

我做了一个看起来像这样的课:

class ErrorConsole {
    constructor(result) {
        this.result = result
}

    error() {
        console.error("fail responseText: " + this.result.responseText)
        console.error("fail contentstatusText : " + this.result.statusText)
        console.error("fail status : " + this.result.status)
    }
}

将函数转换为下面的值后,为什么参数未定义?

        error: (result) => {
            console.log(result) //===> there is object

            addNewMessage("error", "Error");
            err.error(result) //===> there is indefined

            console.error("fail responseText: " + result.responseText)
            console.error("fail contentstatusText : " + result.statusText)
            console.error("fail status  TEST: " + result.status)
        }

您应该在构造函数中而不是在函数中创建ErrorConsole并传递结果,以便可以打印对象属性:

 error: (result) => {
        console.log(result) //===> there is object
        const err = new ErrorConsole(result) 

        addNewMessage("error", "Error");
        err.error()

        console.error("fail responseText: " + result.responseText)
        console.error("fail contentstatusText : " + result.statusText)
        console.error("fail status  TEST: " + result.status)
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM