javascript是一种基于对象的语言,但它没有类的概念,所以又和实际面向对象的语言有区别,面向对象是javascript中的难点之一.现在就我所理解的总结一下,便于以后复习: 一.创建对象 1.创建自定义对象最简单的方式就是创建Object的实例,并在为其添加属性和方法,如下所示: var cat = new Object(); //以猫咪为对象,添加两个属性分别为猫咪姓名和猫咪花色,并添加一个方法,说出猫咪的姓名 cat.name = "cc"; cat.color = &quo…
JavaScript 面向对象程序设计(下)--继承与多态 前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员.公有实例成员.私有静态成员.公有静态成员和静态类的封装.这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态. 1 又是几个基本概念 为什么要说又呢? 在讨论继承时,我们已经列出了一些基本概念了,那些概念是跟封装密切相关的概念,今天我们要讨论的基本概念,主要是跟继承与多态相关的,但是它们跟封装也有一些联系. 1.1 定义和赋值 变量定义是指用 var a;…
或许你会奇怪,面向对象的程序设计为什么从数组开始讲起?这是因为……其间的种种关系吧……嘿嘿,这里先卖个关子,先来看看我们熟悉的数组在JavaScript里面是什么样子的.   1. 创建数组   在JavaScript中有很多创建数组的方法.比如使用Array函数.不过这不是现在我们要讲述的.现在我们使用简单的方括号“[]”的办法来创建数组. Js代码 1.var objAyyar = []; // 1 2.var objAyyar = [2]; // 2 3.var objAyyar = ["…
1. 面向对象 面向对象语言有一个标志:都有类的概念.通过类可以创建任意多个具有相同属性和方法的对象.ECMAScript中没有类的概念,因此JavaScript中的对象夜雨基于类的语言中的面向对象有所不同. 定义: 无序属性的机会 属性可以包含:基本值.对象或者函数 对象:一组没有特定顺序的值,对象的每个属性或方法都有一个名字,每个名字都映射到一个值,想象成散列表:无非就是一组名值对,其中值可以是数据或者函数.每个对象都是基于一个引用类型创建的,这个引用类型可以是原生类型(Object类型.A…
<script type="text/javascript"> //1.继承 //2.原型链 //3.借用构造函数 //4.组合继承 //5.原型式继承 //6.寄生式继承 //7.寄生组合式继承 //1.继承是OO中最让人津津乐道的概念.许多OO语言都支持两种继承方式:接口继承和实现继承. //接口继承只支持方法签名,而实现继承则继承实际的方法. //由于函数没有签名,所以在ECMAScript中无法实现接口继承,只支持实现继承,而且其实现继承主要由原型链来实现. //2…
<script type="text/javascript"> //1.结合使用构造函数模式和原型模式 //2.动态原型模式 //3.寄生构造函数模式 //4.稳妥构造函数模式 //创建自定义类型的常见方式就是组合使用构造函数模式和原型模式.构造函数模式用于定义是实例属性,而原型模式用于定义 //实例属性,而原型用于定义方法和共享的属性.结果,每个实例都会有自己的副本,但同时又共享着对方法的引用,节省内存. function Person(name, age, job) {…
<script type="text/javascript"> //ECMA-262把对象定义为:“无序属性的 集合,其属性可以包含基本值.对象或者函数” //理解对象,最简单的方式就是通过创建一个Object的实例,然后为它添加属性和方法 var person = new Object(); person.name = "Xulei"; person.age = "23"; person.job = "前端工程师"…
在学习js面向对象编程之前,首先须要知道什么是面向对象.面向对象语言都有类的概念,通过它能够创建具有同样属性和方法的对象.但js并没有类的概念,因此js中的对象和其它语言的对象有所不同. js对象能够定义为:"无需属性的集合,其属性能够是基本值.对象和函数.每一个对象都是基于一个引用类型创建的. js创建对象有下面两种方法: 1.创建一个Object实例: var person = new Object(); 2.使用对象字面量: var person ={}; 3.工厂模式: function…
<script type="text/javascript"> //1.理解原型对象 //2.原型与in操作符 //3.更简单的原型语法 //4.原型的动态性 //5.原生对象原型 //6.原型对象的问题 //1.无论什么时候,只要创建了一个函数,就会根据一组特定的规则,为该函数创建一个prototype属性,该属性指向函数的原型对象 //在默认情况下,所有的原型对象都会自动获得一个constructor(构造函数)属性,这个属性包含一个指向prototype属性所在函数的…
javascript中,每个对象都是基于一个引用类型创建的,我们可以把ECMAScript 的对象想象成散列表:无非就是一组名值对,其中值可以是数据或函数. 深刻理解对象 创建自定义对象的最简单方式就是创建一个Object 的实例,然后再为它添加属性和方法,如下所示 var person = new Object(); person.name = "Nicholas"; person.age = 29; person.job = "Software Engineer"…