最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

学习javascript面向对象理解javascript对象_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 21:48:14
文档

学习javascript面向对象理解javascript对象_javascript技巧

学习javascript面向对象理解javascript对象_javascript技巧:一、编程思想 面向过程:以过程为中心,自顶向下逐步细化,程序看成一系列函数调用的集合 面向对象:对象作为程序的基本单元,程序分解为数据和相关操作 二、类、对象 类:对具有相同特性和特征事物的抽象描述 对象:某种类型对应的具体事物 三、面向对象的三大特
推荐度:
导读学习javascript面向对象理解javascript对象_javascript技巧:一、编程思想 面向过程:以过程为中心,自顶向下逐步细化,程序看成一系列函数调用的集合 面向对象:对象作为程序的基本单元,程序分解为数据和相关操作 二、类、对象 类:对具有相同特性和特征事物的抽象描述 对象:某种类型对应的具体事物 三、面向对象的三大特

一、编程思想
面向过程:以过程为中心,自顶向下逐步细化,程序看成一系列函数调用的集合
面向对象:对象作为程序的基本单元,程序分解为数据和相关操作
二、类、对象
类:对具有相同特性和特征事物的抽象描述
对象:某种类型对应的具体事物
三、面向对象的三大特性
封装:隐藏实现细节,实现代码模块化
继承:扩展已存在的代码模块,实现代码重用
多态:接口的不同实现方式,实现接口重用
四、对象定义:无序属性的集合,其属性可以包含基本值、对象或者函数

五、内部属性类型:内部属性无法直接访问,ECMAScript5把它们放在两对方括号中,分为数据属性和访问器属性
[1]数据属性包含一个数据值的位置,在这个位置可以读取和写入值。数据属性有4个特性:
    a、[[Configurable]]: 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性,直接在对象上定义的属性,默认值为true
    b、[[Enumerable]]: 表示能否通过for-in循环返回属性,直接在对象上定义的属性,默认值为true
    c、[[Writable]]: 表示能否修改属性的值,直接在对象上定义的属性,默认值为true
    d、[[Value]]: 包含这个属性的数据值,读取属性值的时候,从这个位置读;写入属性值的时候,把新值保存在这个位置。直接在对象上定义的属性,默认值为undefined
[2]访问器属性不包含数据值,包含一对getter和setter函数(不过这两个函数不是必需的)。读取访问器属性时,会调用getter函数,这个函数负责返回有效的值;在写入访问器属性时,会调用setter函数并传入新值,这个函数负责决定如何处理函数。访问器属性有如下4个特性:
    a、[[Configurable]]: 表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性。直接在对象上定义的属性,默认值为true
    b、[[Enumerable]]: 表示能否通过for-in循环返回属性,直接在对象上定义的属性,默认值为true
    c、[[Get]]: 在读取属性时调用的函数。默认值为undefined
    d、[[Set]]: 在写入属性时调用的函数。默认值为undefined
六、修改内部属性:使用ECMAScript5的object.defineProperty()方法,该方法接收三个参数:属性所在的对象、属性的名字和一个描述符对象
[注意1]IE8是第一个实现Object.defineProperty()方法的浏览器版本。然而,这个版本的实现存在诸多限制:只能在DOM对象上使用这个方法,而且只能创建访问器属性。由于实现不彻底,不建议在IE8中使用Object.defineProperty()方法
[注意2]不支持Object.defineProperty()方法的浏览器中不能修改[[Configurable]]和[[Enumerable]]
[1]修改数据属性

//不是在对象上定义的属性,Configurable、Enumerable、Writable为false
var person = {};
Object.defineProperty(person,'name',{
 value: 'Nicholas'
});
alert(person.name);//'Nicholas'
person.name = 'Greg';
alert(person.name);//'Nicholas'

[注意]一旦把属性定义为不可配置的,就不能再把它变回可配置了,也就是说可以多次调用Object.defineProperty()修改同一属性,但在把configurable设置为false之后,就有限制了

[2]修改访问器属性

[注意1]只指定getter意味着属性是不能写

[注意2]只指定setter意味着属性不能读

【补充】创建访问器属性的用两个非标准的方法:__defineGetter__()和__defineSetter__()

七、定义多个属性:ECMAScript5定义了一个Object.defineProperties()方法,利用这个方法可以通过描述符一次定义多个属性,这个方法接收两个对象参数:第一个对象是要添加和修改其属性的对象,第二个对象的属性与第一个对象要添加或修改的一一对应

八、读取属性特性:使用ECMAScript5的Object.getOwnPropertyDescriptor()方法,可以取得给定属性的描述符。该方法接收两个参数:属性所在对象和要读取其描述符的属性名称,返回值是一个对象。
[注意]可以针对任何对象——包括DOM和BOM对象,使用Object.getOwnPropertyDescriptor()方法

文档

学习javascript面向对象理解javascript对象_javascript技巧

学习javascript面向对象理解javascript对象_javascript技巧:一、编程思想 面向过程:以过程为中心,自顶向下逐步细化,程序看成一系列函数调用的集合 面向对象:对象作为程序的基本单元,程序分解为数据和相关操作 二、类、对象 类:对具有相同特性和特征事物的抽象描述 对象:某种类型对应的具体事物 三、面向对象的三大特
推荐度:
标签: 学习 js 对象
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top