对象的认知

简介: 对象的认知

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

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属性

目录
相关文章
|
4月前
|
人工智能 安全 搜索推荐
浅谈知识的结构与认知(一)
浅谈知识的结构与认知(一)
|
30天前
|
人工智能 算法 数据安全/隐私保护
探索技术的本质:从代码到创新的旅程
【8月更文挑战第19天】在技术的海洋中,我们常常沉浸于代码的编写与算法的优化,却忽略了技术背后的深层含义。本文将通过个人的技术感悟,探讨技术不仅仅是工具和语言的结合体,更是连接思想与现实的桥梁。我们将一同回顾技术如何塑造我们的思考方式,以及它如何影响我们的生活和工作。
|
4月前
|
机器学习/深度学习 人工智能 搜索推荐
生成未来——人工智能如何快速的让我们的思维变成逻辑代码
生成未来——人工智能如何快速的让我们的思维变成逻辑代码
56 0
|
自然语言处理 算法 测试技术
思维链如何释放语言模型的隐藏能力?最新理论研究揭示其背后奥秘
思维链如何释放语言模型的隐藏能力?最新理论研究揭示其背后奥秘
288 0
|
消息中间件 算法 JavaScript
对领域的认知比会写代码更重要
对领域的认知比会写代码更重要
|
搜索推荐 数据挖掘 大数据
谈谈数据驱动和数据导向方法的选择
是数据做出了决定,还是你用数据帮助做出了决定?两者的选择将改变公司与数据的关系。
|
监控 前端开发 程序员
专家别总来抽象虚的东西,这个东西是要落地执行的,这是我对领域驱动模型的思考与认知。
嗯。这就是一个典型的贫血模型, 哇,真的好形象,这是谁想出来的词汇,真想给他说一句 fuck you! 但是,但是,你还有更好的词汇来形容这种项目结构吗? 所谓贫血模型是指使用的领域对象中只有 `setter` 和 `getter` 方法(POJO),所有的业务逻辑都不包含在领域对象中而是放在业务逻辑层。
163 0
|
新零售 供应链 架构师
「技术人生」第2篇:学会分析事物的本质
对于研发同学而言,探究事物的本质,是最基础最核心最先需要被掌握的技能,没有之一。
5006 2
「技术人生」第2篇:学会分析事物的本质