js中Object常用方法和属性

原创 2016年08月19日 17:33:10

继之前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]

JavaScript对象系统深入剖析3-创建对象Object.Create

3.创建对象Object.Create  @吴穹Adam 看这两天同学们的反馈还是觉得比较难懂,因此,决定再举一个例子帮助大家理解吧,后面有关Scope和闭包Closure的精彩内容就只好晚一点写了!...
  • adwu73
  • adwu73
  • 2012年02月01日 07:57
  • 28883

javascript之Object.assign()痛点

javascript的Object.assign()坑啊
  • waiterwaiter
  • waiterwaiter
  • 2015年12月11日 19:27
  • 43587

JS中==、===和Object.is()的区别

首先,先粗略了解一下这三个玩意儿: ==:等同,比较运算符,两边值类型不同的时候,先进行类型转换,再比较; ===:恒等,严格比较运算符,不做类型转换,类型不同就是不等; Object.is()是ES...
  • JimmyLuo17
  • JimmyLuo17
  • 2017年01月15日 15:40
  • 2049

js查看Object对象的内容

假设将对象赋给test,此时test是也是对象。var test = object;一、查看对象内容(一级对象)。for(i in test ){   alert(i);           //获...
  • zccst
  • zccst
  • 2011年02月15日 14:08
  • 61852

JavaScript的Function与Object浅析

前言: JavaScript的面向对象是基于原形的,所有对象都有一条属于自己的原型链。Object与Function可能很多看Object instanceof Function , Functio...
  • SyKent
  • SyKent
  • 2012年09月23日 19:10
  • 10394

JS查看Object对象的内容

以一个例子来说,下面是他的Object: JS: 如果想直接获取到total的值,那就先把获取到的Json先Eval(),然后json.total就能取到total的值了,...
  • tfy1332
  • tfy1332
  • 2015年07月03日 15:31
  • 25228

JS 学习笔记--Object对象

Object的带参数构造函数和对象属性的属性名。 一:Object的带参数构造函数 var obj = new Object(value);   value是js中的元类型,返...
  • chongtianfeiyu
  • chongtianfeiyu
  • 2012年09月15日 15:49
  • 7306

JS对象Object的常用方法汇总

//Object.assign函数 //将来自一个或多个源对象中的值复制到一个目标对象 var first = {name : 'kong'}; var last = {age : 18}; var ...
  • kongjunchao159
  • kongjunchao159
  • 2017年04月11日 15:06
  • 978

详解js中的object对象

Object是在javascript中一个被我们经常使用的类型,而且JS中的所有对象都是继承自Object对象的。虽说我们平时只是简单地使用了Object对象来存储数据,并没有使用到太多其他功能,但是...
  • fengyinchao
  • fengyinchao
  • 2016年03月03日 22:36
  • 7129

【JS--基础--对象】--基础用法(通用的Object属性和方法)

1.创建对象(数组也是对象) 方法1:new Object() 方法2:对象直接量法 eg:var o={name:'bo',age:5} 2.对象属性  属性还是一个对象 ...
  • Beiji_Nanji
  • Beiji_Nanji
  • 2012年05月20日 22:46
  • 1915
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:js中Object常用方法和属性
举报原因:
原因补充:

(最多只允许输入30个字)