Javascript 基元与对象:澄清概念
尽管普遍认为“Javascript 中几乎所有内容都是对象”,但并非所有内容语言中的实体遵循这个定义。基元和对象之间的区别需要澄清。
基元
与对象相反,基元是以其基本形式存在的不可变值。它们缺少方法和属性,并包括以下数据类型:
Object包装器
基元具有相应的对象包装器(字符串、数字、布尔值),它们提供方法和 特性。然而,基元本身并不是对象。为了与基元的属性进行交互,Javascript 会隐式地为操作创建一个包装对象。
字符串示例
考虑下面的代码片段:
var s = "foo"; var sub = s.substring(1, 2); // sub is now the string "o"
Javascript 内部执行以下步骤:
尝试将属性分配给基元
var s = "foo"; s.bar = "cheese"; alert(s.bar); // undefined
var s = "foo"; s.bar =“奶酪”; 警报(s.bar); // undefined
Functions as Objectsfunction foo() {} foo.bar = "tea"; alert(foo.bar); // tea
function foo() {} foo.bar = "茶"; 警报(foo.bar); // tea
总之,虽然基元可能看起来具有类似对象的行为,但它们与 Javascript 中的真实对象不同。对象包装器允许与原始值交互,但原始值保持不可变。然而,函数是 полноценные объекты,具有所有对象功能的完全成熟的对象。这种理解澄清了 Javascript 语言中原语和对象之间的关系。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3