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

标签 javascript this primitive-types

所以我正在研究 Javascript,一件事引起了我的注意。

变量 THIS,并对其进行处理我想知道,如果我有这个功能:

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

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

我试过很多方法,甚至:

someFn.call("A Nice String");

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

有什么办法吗?

最佳答案

在松散模式下,this 始终是一个对象。字符串、数字和 bool 值将被包装(这是您所看到的,类似数组的 String 对象),nullundefined 将被替换为全局对象 ( 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/

相关文章:

javascript - JavaScript 中的美化函数

jQuery 切换如果不是这个

PHP类型提示原始值?

java - 如何检测/避免 Java 中的自动装箱?

types - 内在类型与原始非内在类型

javascript - 使用 fullpage.js 将视频静音/取消静音

javascript - HTML - 如何制作 "Read More"按钮

jquery - 如何在jquery中引用外部 "$(this)"?

c# - Stylecop 告诉我添加这个关键字,但它是多余的 - 对性能有影响吗?

javascript - 无法使用 Express.js 从请求中获取 POST 正文