在Javascript中理解这个,我迷路了

时间:2015-06-30 11:56:04

标签: javascript this primitive-types

所以我正在搞乱Javascript,有一件事让我引起了注意。

变量THIS,正在研究它,我想知道,如果我有这个功能:

var someFn = function(){ console.log(this); }

并且我运行someFn()显然它将控制Window,但是在那里,无论如何我可以使完全相同的功能控制台成为一个字符串?而不是一个对象?

我尝试了很多方法,甚至:

someFn.call("A Nice String");

但它会将字符串分解为每个字母上的对象。

有什么办法吗?

2 个答案:

答案 0 :(得分:3)

在宽松模式下,this始终是一个对象。字符串,数字和布尔值将被包装(这是您所看到的,类似于数组的String对象),nullundefined将被全局对象替换({{1}在浏览器中。)

如果您使用strict mode,它将按预期工作:

window

答案 1 :(得分:2)

我过去遇到过这个问题,它似乎坚持用每个字母作为数组的一部分来注销对象。

我最终作弊并使用了类似的东西:

*/15 * * * * /home/test/demo.py

console.log(this+'')