对象是js中的关键

属性查找

in,Object.hasOwnProperty(),Object.propertyIsEnumerable()都能检测出对象内是否存在某个属性

  1. in关键字 自有属性/继承属性 都返回 true
  2. object.hasOwnProperty() 自有属性 返回true
  3. Object.propertyIsEnumerable() 自有::可枚举::属性 返回 true

枚举(遍历)属性

  1. for in 返回 对象的自有属性名以及::继承属性名::
  2. Object.keys() 返回 对象的::可枚举::自有属性
  3. getOwnPropertyNames() 返回 对象的自有属性

存取器属性(getter, setter)

对象的属性由一到两个方法代替,这两个方法就是getter,setter,由这两个方法定义的属性就叫存取器属性

存取器属性不具有可写性.

  • getter/setter: 可读/写
  • getter: 只读
  • setter: 只写,读取只写属性总是返回undefined

example:

// inherit方法是一个继承对象的方法 书籍exp6-1
import {inherit} from "./inherit.js"
let p = {
x:1.0,
y:1.0,
get r(){
return Math.sqrt(this.x**2+this.y**2)
},
set r(newValue){
let oldValue = Math.sqrt(this.x**2+this.y**2)
let ratio = newValue/oldValue
this.x *= ratio
this.y *= ratio
}
}
let q = inherit(p)
q.x = 3
q.y = 4 console.log(q.r)
//运行结果:5
//这里q继承到了p的存取器属性

属性的特性

  • 数据属性

    1.value

    2.writable

    3.enumerable

    4.configurable
  • 存取器属性

    1.get

    2.set

    3.enumerable

    4.configurable

获得属性特性的方法

Object.getOwnPropertyDescriptor(Object,field)

两个参数:查询的对象,查询的属性,没有该属性则返回undefined

只能查询到自有属性,不能查询到继承属性

想要获得继承属性的特性,需要遍历原型链( Object.getProtoTypeOf() ),在ES5中,将对象作为参数传入可以查询它的原型

对象序列化(serialization)

  • NaN,Infinity,-Infinity --> null
  • 日期对象 --> ISO格式的日期字符串

  • 函数,RegExp对象,Error对象,undefined值不能序列化和还原

JSON.stringify()只能序列化对象的可枚举自有属性

# js权威指南之对象篇的更多相关文章

  1. 《JS权威指南学习总结--1.1语言核心》

    1.1语言核心 --本节主要介绍<js权威指南>基础部分各章讲解内容和一些简单的示例 本小节内容: 一.第二章讲解js注释.分号和Unicode,第三章主要讲解js变量和赋值 简单示例: ...

  2. 【vue.js权威指南】读书笔记(第一章)

    最近在读新书<vue.js权威指南>,一边读,一边把笔记整理下来,方便自己以后温故知新,也希望能把自己的读书心得分享给大家. [第1章:遇见vue.js] vue.js是什么? vue.j ...

  3. 《JS权威指南学习总结》

    JS权威指南学习总结:http://www.cnblogs.com/ahthw/category/652668.html

  4. 《JS权威指南学习总结--开始简介》

    本书共分成了四大部分: 1.JS语言核心 2.客户端JS 3.JS核心参考 4.客户端JS核心参考 其中 <JS权威指南学习总结--1.1语法核心> 是:第一部分JS语言核心 各章节重点 ...

  5. Hadoop权威指南:FSDataInputStream对象

    Hadoop权威指南:FSDataInputStream对象 FileSystem对象中的open()方法返回的是FSDataInputStream对象, 而不是标准的java.io类对象,这个类是继 ...

  6. 《JS权威指南学习总结--第六章 对象》

    内容要点: 一.对象定义 对象是JS的基本数据类型.对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可通过名字访问这些值. 对象也可看做是属性的无序集合,每个属性都是一个名/值对. 属性 ...

  7. Node.js权威指南学习记录

    学习nodeJS权威指南的学习记录 导航: 1.console模块 2.全局变量 3.Buffer对象 4.事件对象 5.网络请求 6.文件操作对象 一. COMMON.js的学习.(commonJS ...

  8. Http权威指南(概述篇总结)

    之前的<锋利的jQuery>后面陆续翻完了,实在觉得没什么值得记录的,也就没继续写了,然后看见书架上有 本去年买的<Http权威指南>,其实做web编程的,对于Http协议还是 ...

  9. 重温《js权威指南》 第4、5、6章

    第四章 表达式和运算符         4.2 对象和数组的初始化表达式                数组: []   [3,7] [1+2,3+4] [[1,2,3,],[4,5,6],[7,8, ...

随机推荐

  1. Docker 镜像构建之 Dockerfile

    在 Docker 中创建镜像最常用的方式,就是使用 Dockerfile.Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明.官方文档:https://d ...

  2. mybatis批量添加数据的三种方式

    原文地址:https://www.cnblogs.com/gxyandwmm/p/9565002.html

  3. Blazor带我重玩前端(六)

    本文主要讨论Blazor事件内容,由于blazor事件部分很多,所以会分成上下两篇,本文为第二篇. 双向绑定 概述 如图所示 当点击单项绑定的时候,MyOnewayComponent里的属性值会发生变 ...

  4. js 原生功底 (一)

    欢迎大家一起学习,点击查看

  5. 网络协议HTTP、TCP/IP、Socket

    网络协议HTTP.TCP/IP.Socket 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.  其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的 ...

  6. ASP调用WEBSERVICE并对返回结果进行解析时遇到的问题

    项目上用动易平台做新闻发布网站,动易平台是用ASP做的,期间需要根据当前登录的用户,取其他系统比如OA的待办事项进行列表展示,OA组的同事给了我一个WSDL接口,百度了很多ASP调用webservic ...

  7. vue实现侧边导航栏

    <div class="sidebar"> <el-menu class="sidebar-el-menu" :default-active= ...

  8. kali linux 开启ssh服务

    kali linux 一般默认不开启ssh服务,可使用命令查看ssh服务是否开启 命令:service ssh status 如果显示ssh服务没有开启需要修改ssh配置文件将ssh服务开启,kali ...

  9. 电子邮箱有哪些隐藏技能,读懂了效率提升N倍!

    很多人将邮箱作为常见的通讯工具,然而,大部分职场人只了解其五分之一的功能.电子邮箱还有很多隐藏技能,身为商务精英的你,必须往下看看哦!今天跟随TOM邮箱小编导,来挖掘下邮箱的潜藏技能吧~ 作为经常外出 ...

  10. Java使用Filter用户权限控制

    package com.mvc.test; import javax.servlet.ServletException; import javax.servlet.annotation.WebServ ...