js的继承操作案例
js的继承操作案例
一、总结
1、要案例要求,内心中想出操作要点
二、js的继承操作案例
案例
练习1:具有默认值的构造函数
- 实例描述:
有时候在创建对象时候,我们希望某些属性具有默认值
- 案例思路:
在构造函数中判断参数值是否为undefined,如果是就为其制定一个默认值。
练习2:遍历对象属性和方法
- 实例描述:
通过for...in...语句遍历对象中的数据,包括属性和方法
- 案例思路:
for...in语句和if判断分别遍历对象的属性和方法。
练习3:属性的添加和删除
- 实例描述:使用 delete 删除对象的属性(注:也可以删除方法,操作方法相同)
练习4:将一个对象赋值给另一个对象的属性
- 实例描述:对象的属性可以是任何类型的值,包括另一个对象。
练习5:创建两个继承关系的对象
- 实例描述:先创建一个人对象,然后再创建一个学生对象,让学生对象去继承人对象的属性和方法,同时学生对象又有自己的属性和方法。
代码
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>课堂演示</title>
</head>
<body>
<script type="text/javascript">
/*
function Hero(name,type,home,weapon){
this.name=name;
this.type=type;
this.home=home;
this.weapon=weapon?weapon:'剑' ;
this.skill=function(){
alert(this.name+'向敌人发动了普通攻击')
}
} var user=new Hero('阿吉','战士','新手村')
delete user.name;
delete user.skill; //删除属性或方法
user.sex='男' //添加属性
document.write('user包含如下属性和方法:<hr/>')
for (var i in user) {
if (typeof(user[i])=='function') { //判断是否为函数用来输出属性和方法
document.write('方法-'+i+':'+user[i]+'<br/>')
}else{
document.write('属性-'+i+':'+user[i]+'<br/>')
}
} function Hero(name,type,home,weapon){
this.name=name;
this.type=type;
this.home=home;
this.weapon=weapon?weapon:'剑' ;
this.skill=function(){
alert(this.name+'向敌人发动了普通攻击')
}
} function Sword(){
this.Att=100;
this.Level=1;
} var xsj=new Sword();
var user=new Hero('阿吉','战士','新手村',xsj)//将一个对象赋值给另一个对象的属性
alert(user.weapon.Att)
alert(user.weapon.Level)
*/ function People(){
this.type='人'
}
People.prototype.getType=function(){
alert('这是一个人')
} function Student(name,sex){
People.call(this);
this.name=name;
this.sex=sex;
} Student.prototype=new People()//学生继承人类
Student.prototype.say=function(){
alert('我是一名学生!')
} var xiaoming=new Student('小明','男')
alert(xiaoming.type)
alert(xiaoming.name)
xiaoming.getType()
xiaoming.say() </script>
</body>
</html>
js的继承操作案例的更多相关文章
- js实现动态操作table
本章案例为通过js,动态操作table,实现在单页面进行增删改查的操作. 简要案例如下: <%@ page language="java" contentType=&quo ...
- js数组的操作及数组与字符串的相互转化
数组与字符串的相互转化 <script type="text/javascript">var obj="new1abcdefg".replace(/ ...
- [转]Node.JS使用Sequelize操作MySQL
Sequelize官方文档 https://sequelize.readthedocs.io/en/latest/ 本文转自:https://www.jianshu.com/p/797e10fe23 ...
- AngularJS基于MVC的复杂操作案例
AngularJS基于MVC的复杂操作案例 <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...
- js 数组的操作
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- js数组的操作 Full
js数组的操作 用 js有很久了,但都没有深究过js的数组形式.偶尔用用也就是简单的string.split(char).这段时间做的一个项目,用到数组的地方很多,自以为js高手的自己居然无从下手,一 ...
- js的dom操作(整理)(转)
js的dom操作整理(整理)(转) 一.总结 一句话总结: dom操作有用原生js的dom操作,也可以用对js封装过的jquery等插件来来更加方便的进行dom操作 1.dom是什么? 对于JavaS ...
- js的DOM操作整理(整理)
js的DOM操作整理(整理) 一.总结 一句话总结: dom操作有用原生js的dom操作,也可以用对js封装过的jquery等插件来更加方便的进行dom操作 1.dom是什么? 对于JavaScrip ...
- js原生继承几种方式
js原生继承 js本身并没有继承和类的概念,本质上是通过原型链(prototype)的形式实现的. 1.先写两个构造函数Parent和Child,用于将Child继承Parent function P ...
随机推荐
- 浅析.Net数据操作机制
举个栗子,获取新闻详情的案例. public ActionResult NewsView(int newsId) { var news = _newsService.GetNewsById(newsI ...
- 通过js动态创建button
通过js动态创建button 一.实例描述 通过JS的DOM对象,实现元素的动态创建. 二.效果 三.代码 <!DOCTYPE html> <html lang="zh-c ...
- 项目: 更新(二) python 实现大概FTP的功能
服务器利用 socketserver 模块 构造, 实现了 多进程. 客户端仍然利用的是底层的 socket模块. 只不过进行了更深度的 解耦, 新加或者删除 某些功能 更方便 在上一个版本的基础上, ...
- POJ 2433 枚举
题意: 思路: 每回枚举去哪个山包 枚举的姿势很重要 //By SiriusRen #include <cstdio> #include <algorithm> using n ...
- 解决 Ubuntu 下解压 .zip 文件时出现乱码
Ubuntu 下解压含中文名的 .zip 文件时,有时候会出现乱码的情况.我们可以通过下列命令来解决此类问题: $ unzip -O CP936 xxx.zip 原文网址 http://www.cnb ...
- lastlog---显示系统中所有用户最近一次登录信息。
lastlog命令用于显示系统中所有用户最近一次登录信息. lastlog文件在每次有用户登录时被查询.可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log ...
- 【Codeforces Round #457 (Div. 2) B】Jamie and Binary Sequence
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把n分解成二进制的形式. n=2^a0+2^a1+...+2^a[q-1] 则固定就是长度为q的序列. 要想扩展为长为k的序列. 可 ...
- Android 关于expandableListView childrenView 点击改变颜色
1.点击后改变颜色并保持颜色改变状态: <?xml version="1.0" encoding="utf-8"?> <selector xm ...
- IAR FOR STM8 学习笔记 IAR工程的建立
STM8是ST意法半导体针对工业应用和消费电子开发而推出的8位单片机. 每种MCU都有自身的优点与缺点,与其它8-bit MCU相比,STM8 8-bit MCU最大的特点是: · 内核: o 最高f ...
- JSTL之C标签学习
JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...