javascript对象的各个属性采用什么样的数据结构组合在一起?

问题描述

javascript对象的各个属性采用什么样的数据结构组合在一起?

我的问题表达得够清楚吗?如果不够清楚看【】里:
【比如:
var obj={
a:1,
b:2,
c:3
};
obj这个对象的三个属性a,b,c在内存里是怎么存储的,比如是存在一个静态数组里,比如是存成一个链表而obj是表头。
我暂时想不出其他存储结构。
我觉得不会是存成静态数组,因为js允许随时对对象进行扩充或删除,如:obj.d=4;这样的话很不方便。而存成一个链表的话,当属性值很多时,查找属性的时候查找效率岂不会大打折扣?
会不会是有一个适中大小的静态数组,如果属性个数超过的数组大小的话就接上链表。

我这个问题纯属个人瞎猜,这个问题到底存在不存在我都不甚清楚。如果根本不存在这个问题,我很惭愧。
我竟没有一个c币。哦,no!

解决方案

不同的js解释器可以有不同的实现。lz不必为这个问题操心了。

解决方案二:

这个浏览器自己管理的,关心这个没意义。

解决方案三:

解释器会自己维护,具体要看实现

解决方案四:

楼主还是比较关心怎么办

解决方案五:

以对象方式存储、对象以堆栈方式存储,最后指向基本的数据结果。

时间: 2024-10-22 02:32:21

javascript对象的各个属性采用什么样的数据结构组合在一起?的相关文章

JavaScript对象的property属性详解

 这篇文章主要介绍了JavaScript对象的property属性,详细讲解了property的各种属性,需要的朋友可以参考下 JavaScript中对象的property有三个属性: 1.writable.该property是否可写. 2.enumerable.当使用for/in语句时,该property是否会被枚举. 3.configurable.该property的属性是否可以修改,property是否可以删除.   在ECMAScript 3标准中,上面三个属性的值均为true且不可改:

javascript 面向对象-JavaScript对象多个属性的访问问题:

问题描述 JavaScript对象多个属性的访问问题: 代码如下 , 问题,为啥_year属性没有改变呢? var book = {}; Object.defineProperties(book , { _year: { value: 2004 }, edition: { value: 1 }, year: { get: function(){ return this._year; }, set: function(newValue){ // alert(newValue); if(newVal

JavaScript对象的property属性详解_基础知识

JavaScript中对象的property有三个属性:1.writable.该property是否可写.2.enumerable.当使用for/in语句时,该property是否会被枚举.3.configurable.该property的属性是否可以修改,property是否可以删除. 在ECMAScript 3标准中,上面三个属性的值均为true且不可改:新建对象的property是可写的.可被枚举的.可删除的:而在ECMAScript 5标准中,可通过property的描述对象(prope

深入学习JavaScript对象_javascript技巧

JavaScript中,除了五种原始类型(即数字,字符串,布尔值,null,undefined)之外的都是对象了,所以,不把对象学明白怎么继续往下学习呢? 一.概述 对象是一种复合值,它将很多值(原始值或其他对象)聚合在一起,可通过属性名访问这些值.而属性名可以是包含空字符串在内的任意字符串. JavaScript对象也可以称作一种数据结构,正如我们经常听说的"散列(hash)"."散列表(hashtable)"."字典 (dictionary)"

JavaScript 对象深入学习总结(经典)_javascript技巧

一.概述 对象是一种复合值,它将很多值(原始值或其他对象)聚合在一起,可通过属性名访问这些值.而属性名可以是包含空字符串在内的任意字符串. JavaScript对象也可以称作一种数据结构,正如我们经常听说的"散列(hash)"."散列表(hashtable)"."字典 (dictionary)"."关联数组(associative array)". JavaScript中对象可以分为三类: ①内置对象,例如数组.函数.日期等:

全面了解JavaScript对象进阶_javascript技巧

要了解JavaScript对象,我们可以从对象创建.属性操作.对象方法这几个方面入手.概括起来,包括以下几模块:   1.创建对象 1.1 对象直接量 对象直接量是创建对象最简单的方式,由若干名/值对组成映射表: var point = {x: 0, y: 0 }; 属性名也没有什么限制,可以是js的关键字或者任意字符串,如果是这两种情况,属性需要用双引号引起来: var empty = {}; va point = {x: 0, y: 0 }; var book = { "main title

JavaScript[对象.属性]集锦之三

javascript|对象 string对象 string对象为操作字符串的内容提供了很多方法. 属性 length 字符串的长度,即字符串中字符的个数. 方法 big(),blink(),bold(),fixed(),italics(),small(),sub(),strike(),sup(),fontColor(color),fontSize(size) 以上方法为字符串增加相应的HTML标记. charAt(index) 返回字符串中index处的字符. indexOf(searchVal

JavaScript[对象.属性]集锦之二

javascript|对象 复选框(checkbox)对象 属性 name NAME属性的字符串值. value 复选框内容的字符串值.如果设置了,则为"on",否则为"off". checked 复选框内容的布尔值.如果设置了,则为true,否则为false . defaultChecked 反映(CHECKED)属性的布尔值(缺省状态). 方法 click() 选定复选框,并使之状态为"on". 事件处理器 onClick 当用户单击Chec

JavaScript[对象.属性]集锦之一

javascript|对象 SCRIPT 标记 用于包含javascript代码. 语法 属性 LANGUAGE 定义脚本语言 SRC 定义一个URL用以指定以.JS结尾的文件 windows对象 每个HTML文档的顶层对象. 属性 frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. feames.length 子桢个数. self 当前窗口. parent 父窗口(当前窗口是中一个子窗口). top 顶层窗口(是所有可见窗口的父窗口). status 浏览器状态窗口上的消息.