美文网首页
javascript权威指南笔记-对象

javascript权威指南笔记-对象

作者: wuxiaodou | 来源:发表于2018-03-15 22:02 被阅读0次

对象的对象特性

  • 对象的原型,指向另一个对象,本对象的属性继承自他的原型对象
  • 对象的类,标识一个对象类型的字符串
  • 对象的扩展标记,指明是否可以向该对象添加新属性

创建对象

  • 对象直接量
    对象直接量是一个表达式,这个表达式的每次运算都会创建并初始化一个新的对象。
  • 通过new创建
  • 原型
  • Object.create()创建(es5)
var o1 = Object.create({x:1,y:2}) // o1继承了属性x和y
console.log(o1.x)                 // 1     

若传入null,则创建一个没有原型的对象

继承

假设要查询对象o的属性x,如果o中不存在x,那么将会在o的原型对象中查询属性x,如果原型对象中也没有x,但这个原型对象也有原型,那么继续在这个原型对象上执行查询,直到找到x或者查到一个原型是null的对象为止。(原型链)

function inherit(o){
    if (o == null)  throw TypeError()
    if (Object.create) {
        return Object.create(o)
    }
    var t = typeof o
    if ( t == 'object' && t !== 'function' ) throw TypeError
    function f(){}
    f.prototype = o
    return new f()
}

删除属性

delete运算符只是断开属性和宿主对象的联系,而不是去操作属性中的属性。只能删除自有属性,不能删除继承属性。

检测属性

  • in运算符
  • hasOwnProperty() 属性是否是自由属性,继承属性返回false
  • propertyIsEnumerable() 是自由属性并且是可以枚举的

枚举属性

对象继承的内置方法是不可以枚举的,但是在代码中给对象添加的属性都是可以枚举的
用for/in可以遍历枚举属性

  • Object.keys() 返回一个数组,是由对象中可枚举的自有属性的名称组成。
  • Object.getOwnPropeytyNames() 返回对象的所有自有属性的名称

setter 和 getter

es5中,对象的属性可以用一个或两个方法代替,就是getter和getter。由 getter和setter定义的属性称为“存储器属性”。他不同于数据属性,数据属性只是一个简单的值。

    var o = {
        // 普通的数据属性
        data_prop: value,

        // 存储器属性都是成对定义的函数
        get accessor_prop() { },
        set accessor_prop() { }
    }

存储器属性也是可以继承的

属性的特性

  • 数据属性的特性:值,可写性,可枚举,可配置
  • 存储器属性的特性:读取,写入,可枚举性和可配置性
    利用 Object.getOwnPropertyDescriptor()可以获取属性描述符的对象(自有属性的)

设置属性的特性:
Object.defineProperty()

    var 0 = {}
    Object.defineProperty(o,"x",{
        vaule: 1,
        writable: true,
        enumerable: false,
        configurable: true
    })

设置多个属性特性:

var p = Object.defineProperties,{
    x: { value: 1, writable: true,... }
    // 存储器属性
    r : {
        get: function() { return ... }
        enumberable: true,
        ...
    }
})

相关文章

  • 自己收集一些前端电子书

    nodejs开发指南中文 精通CSS CSS揭秘 JavaScript权威指南 JavaScript面向对象指南 ...

  • javascript权威指南笔记-对象

    对象的对象特性 对象的原型,指向另一个对象,本对象的属性继承自他的原型对象 对象的类,标识一个对象类型的字符串 对...

  • js对象的创建

    一、创建对象的方法 阅读犀牛书(《javascript权威指南》),书中将js创建对象的方法分为四种,对象字面量、...

  • JavaScript学习笔记

    笔记来自慕课网的js和《JavaScript DOM编程艺术》一书以及《JavaScript权威指南》一书的学习。...

  • ECMAScript 5中的数组方法

    (JavaScript权威指南 笔记) ECMAScript 5定义了几个新的数组方法, 根据功能可以分为 遍历 ...

  • Javascript 权威指南笔记

    1. javascript中有对象概念 包含属性和属性值 2. 对象+函数=方法 a.reverse() a对象调...

  • Javascript权威指南笔记

    1.callee属性在匿名函数中通过调用它来递归的调用自己非常好用。 2.如果使用不慎,闭包很容易造成“循环引用”...

  • 存储器属性

    参考 1.javascript权威指南2.javascript高级程序设计3.MDN 概念 对象属性分为两种:一种...

  • Javascript权威指南看书笔记(一)

    Javascript权威指南看书笔记 第一章 词法结构 javascript区分大小写,而html不区分大小写 u...

  • 《JavaScript权威指南》读书笔记4 对象

    与C++、Java等强类型面向对象的编程语言不同,JavaScript对象是动态的——可以新增属性也可以删除属性,...

网友评论

      本文标题:javascript权威指南笔记-对象

      本文链接:https://www.haomeiwen.com/subject/oiekqftx.html