javascript - JavaScript 中的对象返回自身

标签 javascript google-chrome firefox

假设我有一个对象,它有一个返回对象本身的方法。

var mystate = {
    init: function() {
        return this;
    },
    run: function() {
        console.log("!");
    }
}

然后我运行这段代码:

var status = mystate.init();
mystate.run();
status.run();

在 Firefox 中,这会打印两个“!”在控制台中登录,但不知何故在 Chrome 中它打印了第一个,但我收到错误,

Uncaught TypeError: Object [object Object] has no method 'run'

当它运行时status.run()

当我在 Chrome 中运行 status.run() 时,状态似乎未定义,但在 Firefox 中则不然。

那么...为什么会这样以及如何让对象返回自身?

最佳答案

您无法在 Chrome 中像这样设置 status,因为您实际上正在设置 window.status必须是字符串

因此status变成String“[object Object]”(即转换Object的结果到 String),并且 String 实例没有名为 run 的方法,因此您会收到错误。

关于javascript - JavaScript 中的对象返回自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097503/

相关文章:

javascript - 在浏览器控制台中执行时暂停 Javascript

firefox - 如何制作一个完整的 Firefox 主题?

javascript - 我可以结束 JavaScript 函数的安静死亡吗? (setTimeout 会吞下异常吗?)

javascript - 解析前两个 JSON 对象的 JSON 结构?

javascript - Angular $scope 不适用于回调函数,即使使用 $scope.$apply

google-chrome - Chrome Devtools,为什么控制台过滤器图标是红色的?

javascript - 不安全的 CSP 值 "' unsafe-eval '"in directive ' script-src'

javascript - 如何在app.run中使用异步代码?

javascript - 如何在内联 jquery 网格中定位删除对话框?

javascript - 检查 Google Chrome 中的 jquery 滚动是否位于底部