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

Javascript 基元实际上是对象吗?

Linda Hamilton
发布: 2024-11-17 06:56:03
原创
994 人浏览过

Are Javascript Primitives Actually Objects?

Javascript 基元与对象:澄清概念

尽管普遍认为“Javascript 中几乎所有内容都是对象”,但并非所有内容语言中的实体遵循这个定义。基元和对象之间的区别需要澄清。

基元

与对象相反,基元是以其基本形式存在的不可变值。它们缺少方法和属性,并包含以下数据类型:

  • 字符串
  • 数字
  • 布尔值

对象包装器

原语有相应的对象包装器(字符串、数字、布尔值)提供方法和属性。然而,基元本身并不是对象。为了与基元的属性进行交互,Javascript 会隐式地为操作创建一个包装对象。

字符串示例

考虑下面的代码片段:

var s = "foo";
var sub = s.substring(1, 2); // sub is now the string "o"
登录后复制

Javascript 内部执行以下步骤:

  1. 创建来自 s 的 String 包装对象。
  2. 调用 String 对象的 substring() 方法。
  3. 释放 String 对象。
  4. 返回结果字符串。

尝试将属性分配给基元

为基元分配属性实际上是不可能的,因为任何此类属性都将与临时包装对象相关联,而不是与基元本身相关联:

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板