在什么情况下className是一个Object?

时间:2018-01-14 23:35:27

标签: javascript html dom

我有这个:

responseError(response: any): Promise<Response> {
    if (response instanceof Response) {
        return response.json().then((serverError: ServerError) => {

             // Do something with the error here.

             return Promise.reject<Response>(serverError.error);
        }); 
    }
}

在某些情况下const className = ev.target && ev.target.className; ...是否有人知道为什么会出现这种情况,何时可能出现这种情况?我一直认为它必须是一个字符串。

我实际上发现了一个StackOverflow页面上的对象,但我再也找不到该元素了。

2 个答案:

答案 0 :(得分:3)

如果 ev.target truthy值,那么 ev.target.className 的值将分配给 className ,但如果是falsy,则会分配虚假值。

例如, ev.target null typeof className将返回对象,因为 null 是一个对象。

答案 1 :(得分:-4)

您正在为className变量分配布尔值。 Boolean是一个对象。