JavaScript对象之属性标签

本文介绍一下js对象的属性标签(configurable、writable、enumerable、value、get、set)的使用。

上图的要点为:

1.Object.getOwnPropertyDescriptor(obj,attr)可以获取属性标签的信息。

2.configurable控制属性是否可配置,writable控制属性是否可直接修改,enumerable控制属性是否可被枚举出来。

上图中Object.keys(person)不会输出不能被枚举的对象属性。

上图的要点为:

1.使用Object.defineProperties可定义对象的多个属性。

2.未设置的属性标签的默认值是false。

上图通过重写promote属性的setter,使得当给promote赋值为2后,人的工资发生改变。感觉像Java的面向对象中的类。

这里的get和set的语法和JavaScript对象之get/set方法中的语法略有不同,但是其实本质是一样的。

上图的要点为:

1.writable只限制了能否直接赋值。

2.configurable为false依然能直接修改属性的值。

3.若writable和configurable都是false,则无法进行属性的修改。

原文地址:https://www.cnblogs.com/luoyihao/p/12229776.html

时间: 2024-10-10 14:42:33

JavaScript对象之属性标签的相关文章

javascript对象的属性,方法,prototype作用范围分析

读了篇博客感觉很有用"javascript对象的属性,方法,prototype作用范围分析"就自己写了一遍.以后自己可以用的到. 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://

了解JavaScript 对象的属性操作

提起操作, 很多人都会想到我们学习过程中最经常做的操作, 就是对数据库进行增, 删, 改, 查, 既然提到这个, 那么对于对象的属性操作也不例外, 基本上可以说也是这几个操作. JS中对象的属性标签 writable(可写), enumerable(可枚举), configurable(可配置), value(值), get/set(get, set方法). 这几个标签会在后面逐渐丰富, 这里先简单介绍下. 属性的读写 属性的读写在介绍对象的时候基本已经说的差不多了, 这里补充和总结一下. 这里

Javascript对象的属性及方法

以下注释中的说法相对于PHP等语言的类对象的属性及方法,因为Javascript首先没有“类”这一说法,也不存在静态非静态.属性/方法作用域这一说法. function obj() { var v = '';//私有静态属性 var f = function(){};//私有方法 } ------------------------------------ obj.v = '';//公共静态属性 obj.f = function(){};//公共静态方法 给类本身扩展属性和方法,只能通过类名访问

JavaScript对象获取属性的方法(.和[]方式)

js对象获取属性有两种方法:1.通过.的方式  2. 通过[]方式 // 通过.方式获取属性值,key是静态的 var aa = {name: "zhang", age: 18}; console.log(aa.name); // 通过[]获取属性值, key是动态的,可以是字符串,或者数字的形式 var bb = {"apple": 3, "pear": 2} var cc = {1: "number1", 2: "

javascript对象constructor属性

概述 返回一个指向创建了该对象原型的函数引用.需要注意的是,该属性的值是那个函数本身,而不是一个包含函数名称的字符串.对于原始值(如1,true 或 "test"),该属性为只读. 描述 所有对象都会从它的原型上继承一个 constructor 属性: var o = new Object // 或者 o = {} o.constructor == Object var a = new Array // 或者 a = [] a.constructor == Array var n =

JavaScript对象之属性操作

在js对象中,我们可以对对象属性进行操作. 上图的要点为:for-in会把原型链上的可枚举属性也列出来. 上图的要点为:可以使用逻辑运算符&&进行层层查找对象是否为undefined,从而在赋值过程中不报错. 上图的要点为: 1.delete不存在的属性,依旧返回true. 2.Object.getOwnPropertyDescriptor()是返回某个对象的描述对象,这有点像Java的反射类. 3.Object.prototype不可配置. 上图的要点为: 1.delete全局变量和局部

JavaScript对象之对象标签和对象序列化

对象标签有三种:proto.class和extensible. 一.proto标签 例如我新建了一个person对象,那么其__proto__则指向Person.prototype,然后Person.prototype的__proto__则指向Object.prototype,Object.prototype的__proto__则指向null,从而形成完整的原型链. 二.class标签 上图的要点为: 1. Object.prototype.toString.call(o)则是相当于o.toSt

javascript 对象(四)

一.对象概述 对象中包含一系列的属性,这些属性是无序的.每个属性都有一个字符串key和对应的value. var obj={x:1,y:2}; obj.x; obj.y; 1.为什么属性的key必须是字符串 重点: 可见,字符串的1和数字1访问的都是同一个属性 不管把空对象作为一个key,还是用带有x属性的对象作为key,实际上javascript都会把它转化为字符串,会toString()一下再去处理.所以最终依然指向同样一个属性. 2.对象结构 1.对象属性的结构 对象的属性可以动态添加和删

javascript 对象简单介绍(二)

JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值. 什么是数组?数组对象是使用单独的变量名来存储一系列的值.如果你有一组数据(例如:车名字),存在单独变量如下所示:var car1="Saab";var car2="Volvo";var car3="BMW";然而,如果你想从中找出某一辆车?并且不是3辆,而是300辆呢?这将不是一件容易的事!最好的方法就是用数组.数组可以用一个变量名存储所有的值,并