n = object对象 

for(var p in n){
console.log(p);// 取得是key值
console.log(n[p]);//取得是value值
}

继之前js中数组的常用方法之后,Object的常用方法和属性也是很常用的。故,总结之。 
一、属性 
Object自带一个prototype的属性,即Object.prototype,Object.prototype本身也是一个对象,也会有一些属性和方法。如下: 
1、属性 
Object.prototype.writable:默认为false 
Object.prototype.enumerable:默认为false 
Object.prototype.configurable:默认为false 
Object.prototype.constructor:用于创建一个对象的原型。 
2、常用方法 
Object.prototype.hasOwnProperty():返回一个布尔值,表示某个对象是否含有指定的属性,而且此属性非原型链继承。

Object.prototype.isPrototypeOf():返回一个布尔值,表示指定的对象是否在本对象的原型链中。

Object.prototype.propertyIsEnumerable():判断指定属性是否可枚举。

Object.prototype.toString():返回对象的字符串表示。

Object.prototype.watch():给对象的某个属性增加监听。

Object.prototype.unwatch():移除对象某个属性的监听。

Object.prototype.valueOf():返回指定对象的原始值。

二、方法 
Object.assign(target, …sources):把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。

Object.create(proto,[propertiesobject]):创建一个拥有指定原型和若干个指定属性的对象。

Object.defineProperties(obj, props):在一个对象上添加或修改一个或者多个自有属性,并返回该对象。

Object.defineProperty(obj, prop, descriptor):直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。obj:需要定义属性的对象。prop:需定义或修改的属性的名字。descriptor:将被定义或修改的属性的描述符。

Object.entries(obj):返回一个包含由给定对象所有可枚举属性的属性名和属性值组成的 [属性名,属性值] 键值对的数组,数组中键值对的排列顺序和使用for…in循环遍历该对象时返回的顺序一致。 
举例: 
var obj = { foo: “bar”, baz: 42 }; 
console.log(Object.entries(obj)); // [ [‘foo’, ‘bar’], [‘baz’, 42] ]

Object.freeze(obj):冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。

Object.getOwnPropertyDescriptor(obj, prop):返回指定对象上一个自有属性对应的属性描述符。

Object.getOwnPropertyNames(obj):返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组。 
举例: 
// 类数组对象 
var obj = { 0: “a”, 1: “b”, 2: “c”}; 
console.log(Object.getOwnPropertyNames(obj).sort()); // [“0”, “1”, “2”]

Object.getPrototypeOf(object):返回该对象的原型。

Object.is(value1, value2):判断两个值是否是同一个值。

Object.isExtensible(obj):判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)。

Object.isFrozen(obj):判断一个对象是否被冻结(frozen)。

Object.isSealed(obj):判断一个对象是否是密封的(sealed)。密封对象是指那些不可 扩展 的,且所有自身属性都不可配置的(non-configurable)且属性不可删除的对象(其可以是可写的)。

Object.keys(obj):返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用for-in循环遍历该对象时返回的顺序一致 
举例: 
var arr = [“a”, “b”, “c”]; 
alert(Object.keys(arr)); // 弹出”0,1,2”

// 类数组对象 
var obj = { 0 : “a”, 1 : “b”, 2 : “c”}; 
alert(Object.keys(obj)); // 弹出”0,1,2”

Object.preventExtensions(obj):让一个对象变的不可扩展,也就是永远不能再添加新的属性。

Object.setPrototypeOf(obj, prototype):将一个指定的对象的原型设置为另一个对象或者null

Object.values(obj):返回一个包含指定对象所有的可枚举属性值的数组,数组中的值顺序和使用for…in循环遍历的顺序一样。 
举例: 
var obj = { foo: “bar”, baz: 42 }; 
console.log(Object.values(obj)); // [‘bar’, 42]

js 中object对象的操作的更多相关文章

  1. 浅解析js中的对象

    浅解析js中的对象 原文网址:http://www.cnblogs.com/foodoir/p/5971686.html,转载请注明出处. 前面的话: 说到对象,我首先想到的是每到过年过节见长辈的时候 ...

  2. JS中有关对象的继承以及实例化、浅拷贝深拷贝的奥秘

    一.属性的归属问题 JS对象中定义的属性和方法如果不是挂在原型链上的方法和属性(直接通过如类似x的方式进行定义)都只是在该对象上,对原型链上的没有影响.对于所有实例共用的方法可直接定义在原型链上这样实 ...

  3. js对数组对象的操作以及方法的使用

    js对数组对象的操作以及方法的使用 如何声明创建一个数组对象: var arr = new Array(); 或者 var arr = []; 如何移除所有数组中数据? arrayJson.dataL ...

  4. JS中的对象和方法简单剖析

    众所周知,在js中对象就是精髓,不理解对象就是不理解js. 那么什么事js中的对象呢? 在js中,几乎一切皆对象: Boolean ,String,Number可以是对象(或者说原生数据被认作对象): ...

  5. 深入理解JS中的对象(一)

    目录 一切皆是对象吗? 对象 原型与原型链 构造函数 参考 1.一切皆是对象吗? 首先,"在 JavaScript 中,一切皆是对象"这种表述是不完全正确的. JavaScript ...

  6. 深入理解JS中的对象(二):new 的工作原理

    目录 序言 不同返回值的构造函数 深入 new 调用函数原理 总结 参考 1.序言 在 深入理解JS中的对象(一):原型.原型链和构造函数 中,我们分析了JS中是否一切皆对象以及对象的原型.原型链和构 ...

  7. JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)

    1.装箱和拆箱: 装箱:把基本数据类型转化为对应的引用数据类型的操作: var num = 123 // num var objNum = new Num(123) // object console ...

  8. js中判断对象具体类型

    大家可能知道js中判断对象类型可以用typeof来判断.看下面的情况 <script> alert(typeof 1);//number alert(typeof "2" ...

  9. js中XMLHttpRequest对象实现GET、POST异步传输

    js中XMLHttpRequest对象实现GET.POST异步传输 /* * 统一XHR接口 */ function createXHR() { // IE7+,Firefox, Opera, Chr ...

随机推荐

  1. 〖Linux〗iptables使用实例

    1. 使局域网用户可共享外网(拨号上网) > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o ppp0 -j MA ...

  2. 媒体类型(MIME类型)

    # encoding=utf-8 #python 2.7.10 #xiaodeng #HTTP权威指南 #HTTP协议:超文本传输协议是在万维网上进行通信时所使用的协议方案. #媒体类型: #HTTP ...

  3. 深入浅出Java垃圾回收机制(一)(转载)

    转载来做笔记的:原文地址:http://www.importnew.com/1993.html. 对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲 ...

  4. glusterFS的部署流程

    转自:http://www.cnblogs.com/terrycy/p/5915263.html GlusterFS简单配置   1.准备工作 准备三台机器(物理机或者虚拟机均可)用于安装和测试Glu ...

  5. 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义http请求

    初学性能测试时候,第一步必学脚本录制,但一路下来各种录制失败.回放脚本失败的问题层出不穷,究其原因一是LR本身存在对测试环境的兼容性问题导致录制失败,更深层次的原因是录制者不清楚LR录制脚本的原理,或 ...

  6. Linux应用小技巧

    简介 本文针对Linux操作过程中提升工作效率问题,给出常见操作技巧,主要从Linux终端管理.显示git分支.终端快速检索历史命令等方面进行介绍. 本文内容主要以Ubuntu系统为例进行介绍. Li ...

  7. 添加space_key, enter_key, clear_key, delete_key的处理。

    final EditText view = (EditText) mInflater.inflate(R.layout.sms_receipient_input, null); view.setOnK ...

  8. RCF库ClientStub.setAutoReconnect

    这个选项为false时,当连接断开时,第一次调用服务会抛出异常,而第二次调用时,也会自动连接.

  9. Linux vm运行参数 - overcommit相关的参数

    一.前言 终于可以进入Linux kernel内存管理的世界了,但是从哪里入手是一个问题,当面对一个复杂系统的时候,有时候不知道怎么开始.遵守“一切以人为本”的原则,我最终选择先从从userspace ...

  10. 通向码农的道路(enet开源翻译计划 二)

    QQ 324186207群 enet交流技术,主要是为了研究tcp内部执行机制.欢迎大家增加探讨.小弟水平有限,翻译难免有误. . http://enet.bespin.org 解析enet 双向链表 ...