文档章节

javascript Object类方法的使用

IamOkay
 IamOkay
发布于 2014/11/29 21:30
字数 316
阅读 202
收藏 15

1.获得属性名称

var o = {    
         p1: 123,     
         p2: 456
          };  
Object.keys(o);//获得可枚举的属性名称
// ["p1", "p2"] 
Object.getOwnPropertyNames(o); //获得全部属性名称
// ["p1", "p2"]

2.获得属性的信息描述

var o = { p: 'a' }; 
Object.getOwnPropertyDescriptor(o, 'p')

// Object { value: "a",           writable: true,           enumerable: true,           configurable: true  }

3.定义一个属性

Object.defineProperty(object, propertyName, attributesObject)

第一个参数是目标对象,第二个参数是属性名称,第三个时属性描述

var o = Object.defineProperty({}, "p", {        
                    value: 123,         
                    writable: false, //是否可写        
                    enumerable: true,         
                    configurable: false }); 
                    o.p // 123 
                    o.p = 246; 
                    o.p // 123 // 因为writable为false,所以无法改变该属性的值

定义多个属性

var o = Object.defineProperties({}, {   
                                            p1: { value: 123, enumerable: true },         
                                            p2: { value: "abc", enumerable: true },         
                                            p3: { 
                                                    //get: function() { return this.p1+this.p2 }, 
                                                    value: this.p1+this.p2,               
                                                    enumerable:true,//是否可枚举            
                                                    configurable:true //是否可修改属性描述   
                                                    } 
                                        }); o.p1 // 123 o.p2 // "abc" o.p3 // "123abc"

注意,get不能和value或writable同时出现来描述统一属性


4.属性是否可枚举的检查

Object.prototype.propertyIsEnumerable()

user.propertyIsEnumerable('toString');


5.禁止对象动态扩展

Object.preventExtensions(object);

var o = new Object(); 
Object.isExtensible(o) 
// true 
Object.preventExtensions(o);
 Object.isExtensible(o)

6.冻结对象,使其成为常量对象(无法扩展属性和方法)

var o = {p:"hello"}; 
Object.freeze(o); 
o.p = "world"; 
o.p 
// hello 
o.t = "hello";
o.t // undefined


© 著作权归作者所有

IamOkay

IamOkay

粉丝 204
博文 483
码字总数 403228
作品 0
海淀
程序员
私信 提问
基于 JavaScript 语法定义的语法糖方法 - JSAppSugar

JSAppSugar 是基于 JavaScript 语法定义的一系列语法糖方法,包括:JavaScript 方法,Objective-C 方法和 Java 方法,以实现将开发 iOS/Mac/Android 原生应用程序的部分代码(一般来说是业务逻...

neal01
2018/11/08
827
0
JavaScript instanceof 运算符深入剖析

随着 web 的发展,越来越多的产品功能都放在前端进行实现,增强用户体验。而前端开发的主要语言则是 JavaScript。学好 JavaScript 对开发前端应用已经越来越重要。在开发复杂产品中,需要使用...

IBMdW
2013/06/14
376
1
在服务器端运行JavaScript文件(一)

简介: 把JavaScript脚本与服务器上Java代码相结合,从而获得在服务器端和客户端都能够自由使用的JavaScript脚本。另外,经过这一系列的被展现技术,无论是基于Ajax还是非Ajax的客户端,都将...

长平狐
2012/10/16
1K
0
面向对象的JavaScript——类

在java里,我们定义类的时候用的是class关键字,但是JavaScript中class是保留字,另有用途,所以我们要采用其他的方法来定义JavaScript中的类。 定义类 利用JavaScript中的function关键字,类...

小微
2012/09/21
314
3
JavaScript中的类型

一、关于类型 什么叫做类型?简单地说,类型就是把内存中的一个二进制序列赋予某种意义。比如,二进制序列0100 0000 0111 0000 0001 0101 0100 1011 1100 0110 1010 0111 1110 1111 1001 11...

长平狐
2013/01/06
66
0

没有更多内容

加载失败,请刷新页面

加载更多

python学习10.04:Python list列表使用技巧及注意事项

前面章节介绍了很多关于 list 列表的操作函数,细心的读者可能会发现,有很多操作函数的功能非常相似。例如,增加元素功能的函数有 append() 和 extend(),删除元素功能的有 clear()、 remo...

太空堡垒185
22分钟前
4
0
新手插画学习的方法?教你如何自学?

插画学习的方法?教你如何自学? 从小喜欢画一些漫画头像随笔画,但是其实没有基础。个人偏好小清新手绘风的插画(如下图),每每看到都希望自己能画出这样的作品。 我其实很想说画这种美术功...

huihuajiaocheng
27分钟前
4
0
面试题

1、实现clone();

gtandsn
38分钟前
5
0
CentOS 7 部署 tesseract-ocr

官方地址 github yum-config-manager --add-repo https://download.opensuse.org/repositories/home:/Alexander_Pozdnyakov/CentOS_7/ 若提示 yum-config-manager: command not found 执行以......

阿白
39分钟前
3
0
JAVA比较器中comparator的使用

一个专用的比较器Comparator Comparator是一个专用的比较器,当一个不支持自比较或者自比较函数不能满足要求时,可写一个比较器来完成两个对象之间大小的比较。Comparator体现了一种策略模式...

daxiongdi
40分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部