假设我有一个对象,它有一个返回对象本身的方法。
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/