首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js对象属性

前言 相信对于对象属性大家都或多或少的知道一些,那么本文从属性说开去,看看大家对属性的了解是否有遗漏的部分。...构造函数得到的属性以及基本属性赋值 //正常的构造函数以及对象属性赋值,call .apply构造函数继承方式的属性都可以正常获取,并且属于对象自有属性 let Animal = function ()...(let p in zhangsan){ console.log(zhangsan.hasOwnProperty(p),`${p}:${zhangsan[p]}`) } 参考代码 codepen关于js...对象自身可枚举,不含 Symbol 属性 Object.getOwnPropertyNames(obj) 返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括不可枚举属性)的键名 对象自身...对象自身,全部属性 属性中的this是什么 来源 指向 对象 对象自身 构造函数 返回新对象 原型 原型 纯函数调用 外部环境全局,浏览器或者node 访问器get,set使用 一般我们也用不到这个

15.6K10
您找到你想要的搜索结果了吗?
是的
没有找到

深入 JS 对象属性

属性决定JS对象的状态,本文章主要分析这些属性是如何工作的。 JS几种不同的属性 JS有三种不同的属性:数据属性,访问器属性和内部属性。...属性特性(attribute) 属性的所有状态,包括数据和元数据,都存储在特性(attribute)中。它们是属性具有的字段,就像对象具有属性一样。...特性(attribute)键通常用双括号编写: 以下特性是属于数据属性: [[Value]]:该属性属性值,默认为undefined。...以下特性是属于访问器属性: [[Get]]:是一个函数,表示该属性的取值函数(getter),默认为undefined [[Set]]:是一个函数,表示该属性的存值函数(setter),默认为undefined...所有的属性都具有以下的特性: [[Enumerable]]:是一个布尔值,表示该属性是否可遍历,默认为true。

8.5K50

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

二、面向对象属性类型 在ES5中在定义只有内部采用的特性时,描述了属性(property)的各种特征。...像上面代码中直接在对象上定义的属性,他们的这个特性值默认为true。 (3)[[Writable]]:表示能否修改属性的值。像上面代码中直接在对象定义的属性,他们的这个特性默认为true。...]]特性都被设置为true,而[[Value]]被设置为指定的值"张三";按照上面特性的描述,person对象中的name属性可以通过delete删除重新定义该属性,可以修改该属性特性,可以把该属性修改为访问器属性...;这个方法是 //这个方法接收三个参数:属性所在的对象引用、属性的名字和一个描述符对象 //其中描述符对象属性必须是上面提到的四个属性特性(实现JavaScript引擎所用...访问器属性和数据属性一样,有4个特性: [[Configurable]]:表示能否通过delete删除属性从而重新定义属性,能否修改属性特性,或者能否把属性修改为数据属性,对于直接在对象上定义的属性,

2.3K60

JS对象属性排序小技巧

前面我们讲到数组对象去重的时候,如果由于对象里面的内容是一样,但是属性位置不一样,从而导致我们可能出现无法去重,虽然JSON.stringify()的第二个参数能够自行添加属性到数组里面,但有可能出现我们并不知道对象具体有哪些属性...后来我搜索相关文章,发现了一个很有用的代码,能够自动对属性进行排序,分享给你们。...如下: JSON.stringify(obj, Object.keys(obj).sort()) 当我们使用上面这个Object.keys(obj).sort()之后,并不需要像上一篇手动加入属性组。...(o) { return JSON.stringify(Object.keys(o).sort().reduce((r, k) => (r[k] = o[k], r), {})); } 完整的数组对象去重如下...,map方法是一个遍历方法,返回遍历结果组成的数组.将unique对象的键名还原成对象数组 return JSON.parse(u); }) return arr; } function

3.3K20

JS操作对象属性(获取、添加、删除、修改对象属性

示例3 下面示例先定义一个对象直接量 obj,然后使用 Object.defineProperty() 函数为 obj 对象定义属性属性名为 x,值为 1,可写、可枚举、可修改特性。...最后,调用 Object.defineProperty() 函数,使用数据属性描述符修改属性 x 的特性。遍历修改后的对象,可以发现只读属性 writable 为 false。...的数据属性描述符for (var prop in des) { //遍历属性描述符对象 console.log(prop + ':' + des[prop]); //显示特性值}des.writable...= false; //重写特性,不允许修改属性des.value = 100; //重写属性值Object.defineProperty(obj, "x", des); //使用修改后的数据属性描述符覆盖属性...console.log(prop + ':' + des[prop]); //显示特性值} 一旦为未命名的属性赋值后,对象就会自动定义该属性的名称,在任何时候和位置为该属性赋值,都不需要定义属性

15.1K00

JS面向对象高级特性

本篇是通过学习视频《一头扎进javascirpt高级篇》整理的一些相关知识,大致包括下面几个方面:   1 对象的创建方法   2 对象对象属性、私有属性、类属性   3 对象对象方法、私有方法...  对象属性分为对象属性、私有属性和类属性。   ...对象属性需要创建对象后才能使用;   私有属性在内部可以直接使用,在外部需要通过闭包才能使用。   类属性可以通过对象名称直接使用。        ...-- 私有属性可以通过闭包获取 -->   对象的方法   对象方法包括:对象方法,私有方法和类方法,使用类似前面的属性。...-- 对象属性 私有属性对象属性,类属性 --> function func(){ this.objPro1 = "对象属性";

1.7K100

js对象属性的getter和setter

故温故一遍getter和setter定义属性的方法。 通过对象字面量定义get和set方法 有个注意的地方,get与set的函数体都不能再定义本身该属性,否则执行的时候会陷入死循环,抛出栈溢出。...在对象字面量中,同一个属性不能有两个get,也不能既有get又有属性键值(不允许使用 { get x() { }, get x() { } } 和 { x: …, get x() { } } ) 在同一个对象中...,不能为一个已有真实值的变量使用 set ,也不能为一个属性设置多个 set。...双向数据绑定底层的思想非常的基本,它可以被压缩成为三个步骤: 1.我们需要一个方法来识别哪个UI元素被绑定了相应的属性 2.我们需要监视属性和UI元素的变化 3.我们需要将所有变化传播到绑定的对象和元素...}); } catch (error) { // IE8+ 才开始支持defineProperty,这也是Vue.js

3.1K50

js对象属性描述符详细介绍

属性描述符是 ECMAScript 5 新增的语法,它其实就是一个内部对象,用来描述对象属性特性属性描述符的结构在 JavaScript 中,对象属性描述符用于描述和定义对象属性特性。...以下是常见的属性描述符及其作用:configurable:表示属性是否可以被删除或修改特性。如果设置为 false,则不能删除或修改该属性特性。默认为 true。...借助访问器,可以为属性的 value 设计高级功能,如禁用部分特性、设计访问条件、利用内部变量或属性进行数据处理等。示例 1下面示例设计对象 obj 的 x 属性值必须为数字。...为属性 x 定义了 get 和 set 特性,obj.x 取值时,就会调用 get;赋值时,就会调用 set。...示例 1在下面示例中,定义 obj 的 x 属性允许配置特性,然后使用 Object.getOwnPropertyDescriptor( ) 函数获取对象 obj 的 x 属性属性描述符。

15010
领券