首页 > web前端 > js教程 > 正文

函数、字符串和数字实际上表现得像 JavaScript 中的对象吗?

Susan Sarandon
发布: 2024-11-12 04:23:02
原创
393 人浏览过

Do Functions, Strings, and Numbers Actually Behave Like Objects in JavaScript?

JavaScript 中的函数、字符串和数字都是对象吗?

JavaScript 将几乎所有内容都声明为对象的声誉可能会令人费解,尤其是对于初学者。虽然对象及其方法和属性确实发挥着重要作用,但字符串、数字和函数等基元的行为却有所不同。

基元值与对象

在 JavaScript 中,原始值是不可变的,无法通过点表示法访问。然而,JavaScript 提供了包装对象(String、Number 和 Boolean),它们为基元赋予类似对象的方法和属性。

包装对象

包装对象是在后面创建的访问图元属性时的场景。例如,在代码中:

var s = "foo";
var sub = s.substring(1, 2);
登录后复制

JavaScript 默默地创建一个 String 对象,调用 substring() 方法,然后丢弃该对象。 sub 变量现在包含基元字符串“o”。

虽然看起来您可以将属性分配给基元,但这些分配实际上是在立即丢弃的包装器对象上执行的。因此,检索此类属性会产生未定义的结果,如以下示例所示:

var s = "foo";
s.bar = "cheese";
alert(s.bar); // undefined
登录后复制

函数作为对象

与基元不同,函数是继承的完整对象来自对象。它们可以具有属性,如以下代码所示:

function foo() {}
foo.bar = "tea";
alert(foo.bar); // tea
登录后复制

总之,原语在 JavaScript 中并不固有地具有对象特征。然而,包装对象提供了类似对象行为的外观,而函数是可以与属性和方法交互的真正对象。这种区别对于理解 JavaScript 的类型系统和做出明智的编码决策至关重要。

以上是函数、字符串和数字实际上表现得像 JavaScript 中的对象吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板