所以我正在研究 Javascript,一件事引起了我的注意。
变量 THIS,并对其进行处理我想知道,如果我有这个功能:
var someFn = function(){ console.log(this); }
我运行 someFn() 显然它会控制窗口,但是在那里,无论如何我可以使完全相同的功能控制台成为一个字符串?而不是对象?
我试过很多方法,甚至:
someFn.call("A Nice String");
但它会在每个字母上将字符串分解为一个对象。
有什么办法吗?
最佳答案
在松散模式下,this
始终是一个对象。字符串、数字和 bool 值将被包装(这是您所看到的,类似数组的 String
对象),null
和 undefined
将被替换为全局对象 ( window
在浏览器中)。
如果您使用 strict mode ,它将按预期工作:
function someFn(){ "use strict"; console.log(this); }
someFn(); // undefined
someFn.call("A nice string"); // A nice string
关于javascript - 在 Javascript 中理解这个,我迷路了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31137605/