首页
学习
活动
专区
圈层
工具
发布

JavaScript——对象的属性

在JavaScript中,所有的对象都是一组属性的集合,属性可以是数值,字符串等原始类型,也可以是函数,或者是其他对象。 属性的类型 JavaScript中的属性有两种类型:数据属性和访问器属性。...属性的特性 ES5开始,JavaScript为属性提供了三个特性用于描述其各种特征。特性是内部值,不能直接访问。...,因此访问objC.prop1时,JavaScript将会按照objC—>objB—>objA的原型链进行顺序查找,最后从objA中取出该属性值。...(如果该属性可写) 修改已有访问器属性的值(如果有set方法) 密封对象 通过Object.seal方法可以将对象进行密封,密封后的对象无法: 添加新的属性 删除已有的属性 改变已有属性的特性 但可以...修改已有数据属性的值(如果该属性可写) 修改已有访问器属性的值(如果有set方法) 冻结对象 通过Object.freeze方法可以将对象进行冻结,冻结后的对象无法: 添加新的属性 删除已有的属性 改变已有属性的特性

3.9K30

《javascript高级程序设计》笔记:对象数据属性和访问器属性

什么是对象 对象是无序属性的集合 创建自定义对象最简单的方式就是以字面量的形式创建对象(或创建一个Object实例),然后再为它添加属性和方法,如下所示: var person = { name...内置对象—访问器属性 Object.getOwnPropertyDescriptor()方法介绍(摘自MDN) Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符...访问器属性是实现MVVM框架的核心原理哦~ 4....) 参数: (1)obj:在其上定义或修改属性的对象 (2)props:要定义其可枚举属性或修改的属性描述符的对象。...对象中存在的属性描述符主要有数据描述符和访问器描述符两种 返回:传递给函数的对象 var obj = {}; Object.defineProperties(obj, { 'property1

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript数据属性和访问器属性

    看《深入理解JavaScript》的this篇时看到“访问器属性”这个不熟悉的名词,百度后找到两篇感觉比较合适的文章,整合记录一下,以参考资料2为主,参考资料1为辅助补充。...要修改默认属性的特性,必须使用 ES5 的 Object.defineProperty() 方法。这个方法接收三个参数:属性所在的对象、属性的名字和一个描述符对象。..._year 前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性(虽然理论上是可以直接访问的)。而访问器属性 year 则包含一个 getter 函数和一个 setter 函数。...返回是一个对象,如果是数据属性,这个返回对象的属性有 configurable、enumerable、writable 以及 value;如果是访问器属性,则这个对象的属性有 configurable、...参考资料 JavaScript笔记--数据属性和访问器属性 JavaScript 属性类型(数据属性和访问器属性)

    2K31

    Python 类对象和实例对象访问属性的区别、property属性

    参考链接: Python中的类和实例属性 类对象、实例对象、类属性、实例属性  下面的一个小demo,定义了一个省份类  Province ,即类对象 Province ,开辟了一块内存空间,空间中存放着...),参数 ‘山东省’ 传递到 __init__方法的 name 参数上,name又赋予 self.name ,self.name 为新创建的实例属性,在创建的实例对象中,存在默认的__class__属性会指向类对象...可以看出来,实例对象的实例属性自己独有,类对象的类属性可以被每一个实例对象所调用,即  类属性在内存中只保存一份实例属性在每个对象中都要保存一份 我们通过类创建实例对象时,如果每个对象需要具有相同名字的属性...price 方法,并获取方法的返回值 print(result)  新式类(类继承object),具有三种@property装饰器  经典类中的属性只有一种访问方式,其对应被 @property 修饰的方法新式类中的属性有三种访问方式...      # 自动执行 @price.deleter 修饰的 price 方法  由于新式类中具有三种访问方式,我们可以根据它们几个属性的访问特点,分别将三个方法定义为对同一个属性:获取、修改、删除

    5.2K00

    javascript对象属性的赋值解析

    age: 12} Dog.prototype = Animal; var dog2 = new Dog(12); console.log(dog2);//{age: 12} dog2对象的...name属性不见了,why?...概念: 在segmentfault社区找到相关概念: 当为一个对象属性赋值是要遵循以下规则: 当对象的原型链中的原型对象上有对应的属性名,但是其是只读的,那么对象属性的赋值操作无效; 当对象的原型链中的原型对象上有对应的属性名...,但是其是可写的,且设置了set方法,那么对象属性的赋值操作无效,转而调用调用原型对象中的属性的set方法; 当对象的原型链中的原型对象上有没有对应的属性名,那么直接在当前对象上添加这个属性(如果没有这个属性...'name'只读,所以再次赋值无效 //通过知道属性只读,对象属性赋值操作无效,那么我们可以更改name的property-wirteable为true,如下 Object.defineProperty

    2.3K30

    JavaScript之面向对象的概念,对象属性和对象属性的特性简介

    但ECMAScript(指定JavaScript标准的机构,也就是说JavaScript是实现其标准的扩展)并没有类的概念,因此他的对象和基于类的语言中的对象有所不同,ECMAScript把对象定义为:...应为ECMA-262规范中提到属性的特性是为了实现JavaScript引擎所用到,所以我们不能通过JavaScript直接访问,但是JavaScript给我们提供了了一个方法,来操作我们需要操作的对象的属性的特性...;这个方法是 //这个方法接收三个参数:属性所在的对象引用、属性的名字和一个描述符对象 //其中描述符对象的属性必须是上面提到的四个属性的特性(实现JavaScript引擎所用..._year前面的下划线十一找那个常用的标记,用于表示只能通过通过对象方法访问的属性。而访问器属性year则包含一个getter函数和setter函数。...最终的对象和上一段代码定义的对象相同。唯一的区别是这里的属性都是在同一时间创建的!上一段代码中定义的对象,实在定义完数据属性之后又定义了一个访问器属性。

    3.5K60

    浅谈JavaScript 数据属性和访问器属性

    在JavaScript中对象被定义为"无序属性的集合,其属性可以包含基本值、对象或函数。"通俗点讲,我们可以把对象理解为一组一组的名值对,其中值可以是数据或函数。...中,对象的属性分为两种类型:数据属性和访问器属性。...上面的注释中是分别对各个属性修改后的影响的测试。大家可以自己运行下试试效果。 属性类型 JavaScript中定义了两种不同的属性:数据属性和访问器属性。...数据属性一般用于存储数据数值,而访问器属性一般进行get/set操作,不能直接存储数据数值。在ES5中,我们为了描述属性(property)的各种特征,定义了特性(attribute)。...其他 另外还有 Object.definePropties可以批量为属性设置特性 在javascript中,对象的属性分为数据属性和存储器属性两种: 两种属性的区别 我们使用Object.defineProperty

    1.7K40

    JavaScript对象属性是有序的吗?

    最近有人问我,JavaScript对象属性是否一定是无序的、不可预测的?...早期接触过JavaScript的开发者可能会回答,Object.keys()或for...in会返回一个不可预知的对象属性顺序。 但现在的情况仍然是这样吗? 不是了,有些情况下是有序的。...String 属性一样,是按照属性创建的时间顺序升序排列的。...但是Object.key, for...in, Object.getOwnPropertyNames方法不能获得对象的 Symbol 属性,Reflect.ownKeys和 Object.getOwnPropertySymbols...总结 当一个对象的属性键是上述类型的组合时,该对象的非负整数键(可枚举和不可枚举)首先按升序添加到数组中,然后按插入顺序添加字符串键。最后,Symbol 键按插入顺序加入。

    2K30

    了解JavaScript对象的特殊属性

    理解对象 面向对象最常见的方式就是类,定义一个类之后,由它创建的对象都拥有从类继承而来的方法与属性。然而 JavaScript 里面,至少在 ES6 之前是没有 class的概念的。...属性类型 JS 规定了许多属性值用于给引擎使用,但是不能直接访问他们,通常用 [[Value]] 的方式放置 数据属性 四个值,用来描述行为 [[Configurable]]:能否用 delete...删除某个属性,是否可以修改属性的特性,能否改为访问器属性,字面量创建的对象默认值为 true [[Enumerable]]:能否通过 for-in 遍历属性名字,默认为 true [[Writable...Cannot both specify accessors and a value or writable attribute, 这样一看就明白了,数据属性是定义某个属性的读取写入功能的,而访问器属性则是用来间接读取写入对象中的属性...所以这很像 公有变量与私有变量,如果要在对象中定义对外开放的变量,此时可以用数据属性来规定它,如果你想定义一个不对外公开的变量,就用访问器属性规定它

    92910

    用于加密数据细粒度访问控制的属性加密

    与秘密共享方案的区别 每个用户的密钥都与树访问结构相关联,其中叶子与属性相关联。如果与密文相关联的属性满足密钥的访问结构,则用户能够解密密文。...秘密共享方案 Secret-sharing schemes (SSS) 秘密共享方案 (SSS) 用于在多方之间分配秘密。 提供给一方的信息称为该方的(秘密的)份额 share。...因此,FIBE 实现了容错,使其适用于生物识别。但由于 FIBE 的主要目标是容错,因此唯一支持的访问结构是阈值门,其阈值在设置时固定。因此它对数据访问控制的适用性有限。...我们开发了一种更丰富的基于属性的加密类型。 不同用户的私钥可能与不同的访问结构相关联。 我们的结构支持包括阈值门树 在内的各种各样的访问结构。...ABE 方案的安全性 定义了一个选择集模型,用于证明基于选择明文攻击的属性的安全性。 Init 敌手声明他希望受到挑战的属性集 γ。

    3.3K00
    领券