继承:继承提供了类级别代码复用, 通过继承获得基类的数据, 使得你有能力在已有代码基础上开发而不是从头再写一遍或者copy。我的理解是抽象出的事物本来就是应该互相有联系的,我们可以类来描述抽象的事物,用对象来描述具象的事物,但是这些都是独立的,这就不符合现实的逻辑,所以我们需要继承,让事物之间的联系得到描述。简单的例子:制造液晶显示器的人,一开始并不是直接制造出液晶显示器,而是先造球面的,后来才演变发展为液晶显示器,他们都有显示画面的作用都有电源开关,可能内部构造不太一样,但是还是继承了大部分的属性。
在JS里继承让我们可以将代码写的很优雅,而不是独立的每个FUNCTION去描述,看下面的代码:
/*oop中的继承在javascript中的应用
man类为本演示的基本类
具有姓名、年龄、职业三个属性
*/
var man = function(){
/*定义私有变量*/
var name = "张三";/*默认nane值*/
var age = 25; /*默认age值*/
var business = "web bulider";/*默认职业值*/
/*获得name方法*/
this.getname = function(){
return name;
};
/*name赋值方法*/
this.setname = function(mingzi){
name = mingzi;
};
/*获得age方法*/
this.getage = function(){
return age;
};
/*age赋值方法*/
this.setage= function(nianling){
age = nianling;
};
/*获得business方法*/
this.getbusiness = function(){
return business;
};
/*business赋值方法*/
this.setbusiness= function(zhiye){
business = zhiye;
};
}
/*
manjob类,本演示的子类
将继承基类的性质
*/
var manjob = function(){
/*定义私有变量*/
var page = "3个";/*做了多少个页面*/
var js = "10个"; /*做了多少个JS*/
var flash = "100个";/*做了多少个flash*/
var feel = "bad"; /*感觉如何*/
/*获得page方法*/
this.getpage = function(){
return page;
};
/*page赋值方法*/
this.setpage = function(yemian){
page = yemian;
};
/*获得js方法*/
this.getjs = function(){
return js;
};
/*js赋值方法*/
this.setjs = function(jiaoben){
js = jiaoben;
};
/*获得flash方法*/
this.getflash = function(){
return flash;
};
/*flash赋值方法*/
this.setflash = function(donghua){
flash = donghua;
};
/*获得feel方法*/
this.getfeel = function(){
return "心情很"+feel;
};
/*feel赋值方法*/
this.setfeel = function(xinqing){
feel = xinqing;
};
}
/*
继承开始,用manjob的prototype方式呼叫
man类,继承man类的属性和方法
*/
manjob.prototype = new man();
/*实例化*/
var mydate = new Date();
var tomie = new manjob();//实例化一个manjob
/*赋值*/
tomie.setname("tomie");/*基类*/
tomie.setage(25);/*基类*/
tomie.setbusiness("前端开发");/*基类*/
tomie.setpage("20个");/*子类*/
tomie.setjs("200个");/*子类*/
tomie.setflash("10个");/*子类*/
tomie.setfeel("happy");/*子类*/
/*打印结果*/
alert("继承后返回的方法为:"+tomie.getname + tomie.getage + tomie.getbusiness + tomie.getpage + tomie.getjs + tomie.getflash + tomie.getfeel)
alert(tomie.getname() +"年龄为"+ tomie.getage() +"岁,职业为"+ tomie.getbusiness() +",于"+(mydate.getMonth()+1)+"月完成了页面"+ tomie.getpage() +",脚本"+ tomie.getjs() +",动画"+ tomie.getflash() +","+ tomie.getfeel())
分享到:
相关推荐
在JavaScript中,OOP主要通过构造函数、原型链、封装、继承和多态来实现。 1. 构造函数:构造函数是用于初始化新创建的对象的特殊函数。在JavaScript中,我们可以使用`function`关键字定义一个构造函数,例如: ``...
#### 六、面向对象编程(OOP)在JavaScript中的应用 - **构造函数**:创建对象实例的模板。 - **原型链**:实现继承的基础。 - **类(class)**:ES6引入的新特性,更接近传统面向对象语言的类的概念。 - **模块化**:...
在JavaScript中,面向对象编程(OOP)是一种强大的设计模式,可以用来构建复杂、可复用的代码结构。本文将详细介绍如何使用JavaScript的面向对象方法实现拖拽特效,并结合继承的概念,为初学者提供深入的理解。 一...
面向对象编程(OOP)强调数据封装、继承和多态,可以更好地组织代码。对于无缝轮播,我们可以定义一个`Slider`类,包含以下属性和方法: #### 属性 - `container`: 存放轮播图片的DOM元素。 - `slides`: 所有轮播...
-目的说明它是在第1,2阶段文档演示的JavaScript面向对象的书写方式的进一步改进,它是现代JavaScript面向对象编程方式(使用基本类来编码)的过渡代码--没有它就没有当今的JS OOP--此人非常牛!!! 4. 最后使用IE...
- 面向对象编程(OOP)的关键概念包括封装、继承和多态。 **闭包:** - 闭包是指能够读取其他函数内部变量的函数。 - 实现内存管理的重要手段之一。 **插件与模块化:** - 插件可以扩展JavaScript的功能。 - 模块化...
面向对象编程(Object-Oriented Programming,OOP)是JavaScript中的一个重要概念,它允许开发者通过对象来组织代码,提高可读性和可维护性。本指南的第二版深入探讨了JavaScript的面向对象特性,旨在帮助开发者更好...
在提供的资源中,《代码之美》PDF文件可能包含了关于编程实践和代码风格的指导,而《Javascript面向对象编程》PPT可能更具体地阐述了JavaScript OOP的细节和示例。学习这些材料将有助于深入理解JavaScript的面向对象...
JavaScript,简称JS,是Web开发领域中不可或缺的脚本语言,尤其在前端开发中占据着核心地位。"js高级技术2"这个主题涵盖了JavaScript的一些深入和高级概念,这些概念对于提升编程技能和优化代码性能至关重要。以下是...
在JavaScript的世界里,面向对象编程(Object-Oriented Programming,OOP)是一种常见的设计模式,尤其在游戏开发中,它能帮助我们构建复杂且可扩展的代码结构。本项目"js面向对象游戏开发,飞机大战"是利用...
在JavaScript中,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它允许我们以更符合现实世界的方式来组织代码。本知识点将深入探讨JavaScript中的面向对象特性,特别是其继承机制。 ...
- **面向对象的基础知识**:面向对象编程(OOP)的基本概念包括封装、继承和多态性。 - **内置对象**:JavaScript提供了一系列内置对象,如Array、Boolean、Date等,可用于处理不同类型的数据。 - **Prototype属性**:...
在JavaScript中,面向对象编程(Object-Oriented Programming,OOP)是其核心概念之一,帮助开发者创建可复用、模块化的代码。下面将详细解释JavaScript的面向对象编程。 1. **对象和原型**: JavaScript中的对象...
面向对象编程(Object-Oriented Programming,OOP)是软件开发中的一个重要概念,它允许我们通过模拟现实世界中的对象来组织和管理代码。在JavaScript中,面向对象编程主要体现在三个方面:构造函数、原型和闭包。 ...
尽管JavaScript的原始OOP机制基于原型,但ES6引入了类语法,它提供了一种更接近传统面向对象语言的写法,但底层仍然基于原型。类的实例化、继承、静态方法等都可以通过类语法实现。 9. **模块系统** JavaScript有...
ES6 引入了基于原型的面向对象编程的类语法,虽然实质上仍然是函数,但提供了更接近传统 OOP 语言的写法。通过 `class` 关键字定义类,`extends` 关键字实现继承。 6. **模块(Module)** 使用 `import` 和 `...
ES6 引入了基于原型的面向对象编程的类语法,虽然实质上仍然是函数,但提供了更接近传统 OOP 语言的写法。类支持构造函数、继承、静态方法等特性。 8. **模块(Module)**: 模块系统允许你组织代码,导入和导出...
4. **ES6中的类(Class)**:尽管JavaScript在ES6中引入了类的语法糖,但它们仍然基于原型,提供了更接近传统面向对象语言的写法。 **学习面向对象编程的重要性:** - **模块化**:通过封装和继承,可以使代码更加...