1.什么是对象?面向对象又是什么?

对象:将现实中的对象,通过用一组无序数据和一组操作方法来对其进行抽象的描述出来,作为一个相互依存的整体。

function Annimals(){this.class="Cat";this.voice="miao";this.eat=function(){console.log('eat.......');};this.run=function(){console.log('run.......');};
}

View Code

面向对象:基于对象进行程序设计,是程序开发的一种程序设计方法。

2.对象的属性

这里说的属性其实就是对象中的数据以及两个特殊的方法。将它们划分为:数据属性、访问器属性。

  • 数据属性

—用于保存数据值。ECMA中对数据属性定义了4个描述其行为的特征

  1. [[ Configurable ]]:能否用delete删除属性,然后重写定义、能否修改属性的特性、能否把属性修改为访问器属性。
  2. [[ Enumerable]]:能否通过for-in返回属性。
  3. [[ Writable]]:是否能修改属性的值。
  4. [[ Value]]:属性的数据值。(默认值:undefined)

一般由程序员添加的自定义属性它们的默认值都是true。ES5中可以通过Object.defineProperty()方法修改一个数据属性的行为特征。

var person={};
Object.defineProperty(person, "name",{writable:false,value:"JayChou"
});

View Code

  • 访问器属性

其实是对私有数据进行进一步封装,提供一个特殊的属性对对象的私有数据属性进行访问和操作。访问器属性不包含数据值,包含一对getter和seter函数。

访问器属性有如下特征:

  1. [[ Configurable ]]:能否用delete删除属性,然后重写定义、能否修改属性的特性、能否把属性修改为访问器属性。
  2. [[ Enumerable]]:能否通过for-in返回属性。
  3. [[Get]]:读取私有属性时候调用的接口。(默认值:undefined)
  4. [[Set]]:设置私有属性时候调用的接口。(默认值:undefined)

同样ES5中可以通过Object.defineProperty()和 Object.getOwnPropertyDescriptor()方法修改或读取一个数据属性的行为特征。(IE9+)

var book={_year:2002,edition:1
};Object.defineProperty(book,"year",{
//get和set定义的话要一起定义,不然定义了一个另外一个不起作用get:function(){return this._year;},set:function(y){this._year=y;}
});

View Code

转载于:https://www.cnblogs.com/fanglylu/p/6821408.html

ECMAScript面向对象(一)相关推荐

  1. ECMAScript面向对象(三)——之继承

    1.原型链方式 主要利用原型对象,让引用类型A的的prototype属性指向另一个引用类型的实例,从而继承另一个引用类型的属性和方法. 问题 1.无法在创建子类的时候向父类的构造函数传递参数 2.父类 ...

  2. 深入理解JavaScript系列(18):面向对象编程之ECMAScript实现

    http://www.cnblogs.com/TomXu/archive/2012/02/06/2330609.html 介绍 本章是关于ECMAScript面向对象实现的第2篇,第1篇我们讨论的是概 ...

  3. 学习JavaScript

    JavaScript Date(日期)对象 日期对象用于处理日期和时间. JavaScript Date(日期)对象 实例 返回当日的日期和时间 如何使用 Date() 方法获得当日的日期. < ...

  4. 《JavaScript面向对象精要》读书笔记

    JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...

  5. 再和“面向对象”谈恋爱 - 对象简介(一)

    JavaScript中的面向对象是个老生常谈的话题,但是依然有很多小伙伴处于懵逼的状态.面试时候最担心的就是被问到面向对象相关的内容,自己看过无数的资料,依然对面向对象百思不得其解.到底什么是原型?什 ...

  6. 前端面试回顾(1)---javascript的面向对象

    前言 前一阵面试,过程中发现问到一些很基础的问题时候,自己并不能很流畅的回答出来.或者遇到一些基础知识的应用,由于对这些点理解的不是很深入,拿着笔居然什么都写不出来,于是有了回顾一下这些基础知识的想法 ...

  7. ECMAScript 6 Features 中文版

    ECMAScript 6 Features 中文版 来源 https://github.com/ES-CN/es6features/blob/master/README.md 如词不达意,欢迎提 PR ...

  8. 《JavaScript面向对象编程指南》——第1章 引言1.1 回顾历史

    本节书摘来自异步社区<JavaScript面向对象编程指南>一书中的第1章,第1.1节,作者: [加]Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区" ...

  9. 《JavaScript面向对象编程指南》——1.3 分析现状

    本节书摘来自异步社区<JavaScript面向对象编程指南>一书中的第1章,第1.3节,作者: [加]Stoyan Stefanov 译者: 凌杰 更多章节内容可以访问云栖社区" ...

最新文章

  1. 1.8 centos7 的PATH、cp/mv/文档查看命令介绍
  2. 查询出来时间不对_2020年一级、二级建造师执业资格考试成绩可查询!
  3. 【转载】从“关于Java堆与栈的思考”一帖看错误信息的传播
  4. 异步执行和多线程编程的关系
  5. 视图插入数据_用EXCEL作数据分析--招聘信息
  6. c语言编写考试程序,c语言考试编写三个程序:1.从键盘输入一些字符,逐个把它们送到磁? 爱问知识人...
  7. 数据库事务的特性(ACID)
  8. linux内核之设备驱动
  9. Intel 8042键盘控制器详细介绍
  10. 嵌入式 Linux 4.0,嵌入式多媒体中心 OpenELEC 4.0.4
  11. java验证码kaptcha_spring整合kaptcha验证码的实现
  12. 智慧实验室LIMS系统真的有必要建设吗?
  13. 【前端面试课程重点总结】
  14. [LINUX]手动清理syslog
  15. LabVIEW控制Arduino采集光敏电阻数值(基础篇—14)
  16. LeetCode 606. 根据二叉树创建字符串题解
  17. 第十弹:网络公开课,免费学习资源,2020.07.05更新
  18. python画画excel_python在excel中画画
  19. Front Immunol 复现 | 4. 使用estimate包评估肿瘤纯度
  20. 红旗Linux4.1下安装Apahce+Tomcat+PHP+mySQL+vsFTPd实录

热门文章

  1. c语言实现判断两个子图是否同构问题_经典问题-回溯法-最大团问题
  2. java 有序map_Java有序的Hash集合:LinkedHashMap
  3. my batis plus 小数没有0_北师大版五年级第一单元小数除法知识点总结及易错题解析(1)...
  4. gdb 查看是否 栈溢出_ASLR、DEP与栈保护(HFUT-ZRB#x27;s Task)
  5. 计算机栏和用户栏有啥区别,任务栏与桌面的区别是
  6. 华为android强刷系统下载地址,华为P6S官方rom固件刷机包下载_华为P6S原版系统强刷升级包...
  7. vue商品列表滚动效果_vue+帧动画 实现 获奖奖品列表滚动循环展示
  8. Node.js webpack webpack-dev-server
  9. javascript async await
  10. ConvolverNode