所以我正在搞乱Javascript,有一件事让我引起了注意。
变量THIS,正在研究它,我想知道,如果我有这个功能:
var someFn = function(){ console.log(this); }
并且我运行someFn()显然它将控制Window,但是在那里,无论如何我可以使完全相同的功能控制台成为一个字符串?而不是一个对象?
我尝试了很多方法,甚至:
someFn.call("A Nice String");
但它会将字符串分解为每个字母上的对象。
有什么办法吗?
答案 0 :(得分:3)
在宽松模式下,this
始终是一个对象。字符串,数字和布尔值将被包装(这是您所看到的,类似于数组的String
对象),null
和undefined
将被全局对象替换({{1}在浏览器中。)
如果您使用strict mode,它将按预期工作:
window
答案 1 :(得分:2)
我过去遇到过这个问题,它似乎坚持用每个字母作为数组的一部分来注销对象。
我最终作弊并使用了类似的东西:
*/15 * * * * /home/test/demo.py
或
console.log(this+'')