对象的认知

简介: 对象的认知

通过普通属性,排序属性和隐藏类提升对象属性认知

var obj = {};
obj.p1 = "str1";
obj.p6 = "str6";
obj.p2 = "str2";
obj[1] = 'num1';
obj[6] = 'num6';
obj[2] = 'num2';
for (var p in obj) {
    console.log("property:", obj[p])
}
// property: num1
// property: num2
// property: num6
// property: str1
// property: str6
// property: str2

常规属性

键为字符串的属性

特点:根据创建时的顺序排序

var obj = {};
obj.p1 = "p1";
obj.p6 = "p6";
obj.p2 = "p2";
for (var p in obj) {
    console.log("property:", p)
}

排序属性

属性键值为数字的属性

特点∶按照索引值大小升序排序

数字字符串属性也是排序属性

var obj = {};
obj[1] = 'p1';
obj[6] = 'p6';
obj[2] = 'p2';
for (var p in obj) {
    console.log("property:", p)
}

字符串排序属性

var obj = {};
obj['1'] = 'p1';
obj['6'] = 'p6';
obj['2'] = 'p2';
for (var p in obj) {
    console.log("property:", p)
}

字符串索引数组

var arr = [0, 1, 2, 3, 4];
console.log(arr["2"]);
console.log(arr["3"]);
console.log(arr["4"]);

image.png

对象上包含的2个隐藏属性,包含elementsproperties属性。分别指向elements对象,properties对象。执行索引的操作的时候v8会先从elements对象遍历读完所有属性之后,在遍历propertie属性。

对象内属性

何为对象内属性∶被保存到对象自身的常规属性,不需要先去访问elementsproperties属性,可以直接访问。

内属性的数量:一般为10个

我怎么知道哪些是内属性

        function CustomObject(eCount, pCount) {
            for (let i = 0; i < eCount; i++) {
                this[i] = `e-${i}`
            }
            //添加常规属性 
            for (let i = 0; i < pCount; i++) {
                this[`p-${i}`] = `p-${i}`
            }
        }
// 排序属性6, 普通属性6个
var obj = new CustomObject(2, 2);

image.png

并没有properties属性

目录
相关文章
|
Java 中间件 Spring
开发与运维应用问题之应用启动提速如何解决
开发与运维应用问题之应用启动提速如何解决
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的体脂健康管理系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的体脂健康管理系统附带文章和源代码部署视频讲解等
133 7
|
存储 人工智能 图形学
Unity基础到入门-导航系统(Navigation)
Unity基础到入门-导航系统(Navigation)
Unity基础到入门-导航系统(Navigation)
|
安全 Linux 数据安全/隐私保护
Linux root用户忘记密码解决方法
Linux root用户忘记密码解决方法
1942 0
|
机器学习/深度学习 数据采集 存储
如何检测文本(NLP)和图像(计算机视觉)数据漂移
在现实世界中,数据以各种系统和格式记录,并且不断变化。 这些变化可能会随着便携式系统的老化和机械破裂而引入噪音,或者在生产过程发生根本变化或消费者行为变化的情况下发生。 这些变化对预测的准确性有影响,因此有必要测试在模型开发过程中所做的假设在模型投入生产时是否仍然有效。
|
Java
Java多线程核心技术(六)线程组与线程异常
本文应注重掌握如下知识点: 线程组的使用 如何切换线程状态 SimpleDataFormat 类与多线程的解决办法 如何处理线程的异常
3265 0
|
iOS开发 MacOS
macOS 查看、修改文件、文件夹权限的命令
1、查看文件/文件夹权限: 1、查看某个文件权限的命令 ls -l + 要查看文件的文件名 1 2、查看某个文件夹里所有文件/文件夹的权限 ls -l + 文件夹名 1 3、如果要查看某个文件夹的权限,需要在该文件夹外部目...
4749 0
|
Apache 数据安全/隐私保护
|
存储 分布式数据库 数据库
阿里云表格存储技术分享
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的NoSQL数据存储服务,提供海量结构化数据的存储和实时访问。表格存储以实例和表的形式组织数据,通过数据分片和负载均衡技术,实现规模上的无缝扩展。应用通过调用表格存储 API / SDK 或者操作管理控制台来使用表格存储服务。
7121 0