来自<javascript高级程序设计 第三版:作者Nicholas C. Zakas>的学习笔记(六) 先来解析下标题——对象和继承~ 一.对象篇 ECMA-262把对象的定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."=.=用自己的话理解就是:对象就是散列表,无非就是一组名值对,其中的值可以是数据或是函数.ECMAScript中有两种属性:数据属性和访问器属性.而对于描述属性的基本特征是为了实现javascript引擎用的,在javascript中不能直…
背景: 在最开始学习JavaScript时,我们就知道,它是一种脚本语言,也有面向对象机制.但它的面向对象继承机制是基于原型的,即Prototype.今天,我们就来找一下JS中OO的影子. 创建类 1.用function模拟创建类,类似构造函数 function Animal() { this.name = "动物"; this.action = "打招呼"; } var animal = new Animal(); alert(animal.name + &quo…
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. 这是第一篇:理解对象,认识对象属性的类型. 二.理解对象 书中原话--ECMA-262中把对像定义为:无序属性的集合.其中属性可以是基本值,对象或者是函数. 1.我们通俗点理解一下 对象是一个真实存在的东西,就像世上每一个人.每一个物体一样,它有自己的属性,行为.也就是说各种属性集合在一起就是一个…
一.介绍 老铁们,这次是JS的面向对象的编程OOP(虽然我没有对象,心累啊,但是可以自己创建啊,哈哈). JS高程里第六章的内容,这章内容在我看来是JS中很难理解的一部分.所以分成三篇博客来逐个理清. 这是第一篇:理解对象,认识对象属性的类型. 二.理解对象 书中原话--ECMA-262中把对像定义为:无序属性的集合.其中属性可以是基本值,对象或者是函数. 1.我们通俗点理解一下 对象是一个真实存在的东西,就像世上每一个人.每一个物体一样,它有自己的属性,行为.也就是说各种属性集合在一起就是一个…
前言 ECMAScript中没有类的概念,因此它们的对象与基于类的语言中的对象有所不同. ECMA-262把对象定义为:"无序的集合属性,其属性可以包含基本值,对象或者函数".正因为这样,我们可以把ECMAScript想象成散列表: 无非就是一组名值对,其中值可以是数据或者函数, 每个对象都是基于一个引用类型创建的,这个引用类型可以是第5章讨论的原生类型,也可以是开发人员定义的类型 ·理解对象 ·属性类型 ECMA-262定义了只有自内部才用指定特性时,描述了属性的各种特征.ECMA-…
一.对象定义 (1)ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同: (2)ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值.对象或者函数” 二.创建对象的方法 (1)创建一个Object实列,然后再为它添加属性和方法 var person = new Object(); person.name = "Mary"; person.age = 18; person.job = "Software Engineer"…
6.1 理解对象 6.1.1 对象属性类型 ECMS属性有两种类型:数据属性和访问器属性 1 数据属性 [[configurable]] 表示能否通过Delete 删除属性从而从新定义属性,能否修改属性的特性,或者能否把属性修改为访问器属性.对象上定义的属性默认值为true [[enumerable]] 表示能否通过for-in循环返回属性.直接在对象上定义的属性,它们的这个特性默认值为true [[writable]] 表示能否修改属性值.像前面例子中那样直接在对象上定义的属性,它们默认值为t…
一.面向对象编程(继承) 这篇博客是面向对象编程的第三篇,JS继承.继承顾名思义,就是获取父辈的各种"财产"(属性和方法). 怎么实现继承? 我们的JavaScript比较特别了,主要通过原型链实现继承的. 下面介绍各种实现继承的方式:原型链继承,借用构造函数,组合继承,原型式继承,寄生式继承,寄生组合式继承. 二.实现继承方式 1.原型链方式 原型我们都知道,每个构造函数都有一个原型对象(prototype),用于存放共享的属性方法. 原型链继承原理:我们要继承一个父类,那就把这个子…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…