javascript中的对象

一 建立对象:

  1. 对象直接量:由若干名/值对组成的映照表,名/值对中心运用冒号星散,明/值对之间用逗号星散,全部映照变运用花括号括起来。举例以下:

var book = {
    "main title": "javascript",                   // 属性名字里有空格,必需用字符串示意
    "sub-title": "The Definitive Guide",          // 属性名字里连字符,必需运用字符串就是
    "for": "all audiences",                       // "for"是保留字,因而必需用引号
    author: {                                     // 这里的属性值是一个对象
        firstName: "David",                       // 注重,这里的属性名都没有引号
        surname: "Flanagan"
    }
};
  1. 经由过程new建立对象:new运算符建立并初始化一个对象。关键字new后追随一个函数挪用。这里的函数称作组织函数,组织函数用以初始化一个新建立的对象。比方:

var o = new Object();     // 建立一个空对象,和{}一样
var a = new Array();      // 建立一个空数组,和[]一样
  1. 原型:每个javascript对象都和另一个对象关联。
    没有原型的对象为数不多,Object.prototype就是个中之一。

  2. Object.create():它建立一个新对象,个中第一个参数是这个对象的原型,第二个可选参数,用以对对象的属性举行进一步形貌。比方:

var o1 = Object.create({x:1, y:2});       // o1继续了属性x和y
var o2 = Object.create(null);             // o2不继续任何属性和要领

二 属性的查询和设置

能够经由过程点(.)或方括号([])运算符来猎取属性的值。运算符左边应当是一个表达式,它返回一个对象。关于点来讲,右边必需是一个以属性称号定名的简朴标识符。关于

方括号来讲,方括号内必需是一个计算结果为字符串的表达式,这个字符串就是属性的名字:

var author = book.author;          // 获得book的"author"属性
var name = author.surname;         // 获得auhor的"surname"属性
和查询属性的写法一样,经由过程点和方括号也能够建立属性或给属性赋值,但须要将它放在表达式的左边:
book.edition = 6;                    // 给book建立一个名为"edition"的属性
book["main title"] = "ECMAScript";   // 给"main title"属性赋值

三 删除属性

delete运算符能够删除对象的属性。它的操纵数应当是一个属性接见表达式。delete只是断开属性和宿主对象的联络,而不会去操纵属性中的属性。比方:
delete book.author;                  // book不再有属性author
delete运算符只能删除自有属性,不能删除继续属性。

四 检测属性

javascript对象能够看作属性的鸠合。须要检测鸠合中成员的所属关联--推断某个属性是不是存在于某个软件中。能够运用in运算符,hasOwnProperty()和propertyIsEnumerable()要领来完成。

五 罗列属性

遍历对象属性三种要领:
* 一般运用for/in轮回.
* Object.keys().
* Object.getOwnPropertyNames().

六 属性getter和setter

对象由名字、值和一组特征组成的。属性值能够用一两个要领替换,这两个要领就是getter和setter。由getter和setter定义的属性称作“存储器属性”,
不同于“数据属性”,数据属性只要一个简朴的值。

七 对象的三个属性

* 原型属性: 要想检测一个对象是不是是另一个对象的原型,请运用isPrototypeof()要领。
* 类属性: 运用classof()函数能够返回通报给它的恣意对象的类。
 function classof(o) {
    if (o === null ) return "Null";
    if (o === undefined) return "Undefined";
    return Object.prototype.toString().call(o).slice(8, -1);
}   

八 序列化对象


对象序列化是指将对象转换为字符串,也能够将字符串复原为对象。

* JSON.Stringify() 序列化对象
* JSON.parse() 复原js对象


    原文作者:silence
    原文地址: https://segmentfault.com/a/1190000005625926
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞