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 ...
随机推荐
- KETTLE使用javascript步骤过滤特殊字符
KETTLE使用javascript步骤过滤特殊字符 使用kettle在抽取大量excel数据时.总是遇到excel中有一些特殊字符,导致ExecuteSQL script步骤运行失败,本文记录一些方 ...
- hadoop2.x HDFS快照介绍
说明:由于近期正好在研究hadoop的快照机制.看官网上的文档讲的非常仔细.就顺手翻译了.也没有去深究一些名词的标准译法,所以可能有些翻译和使用方法不是非常正确,莫要介意~~ 原文地址:(Apache ...
- Android_L(64bit) 模拟器配置及创建项目
Android L可能就是Android 5.0.随之而来的还有Android Watch. Android TV. 而据说在10月中旬也就是15号Google的公布会上应该会推出Nexus 6和Ne ...
- javascript 将时间戳格式化
<script>function getLocalTime(nS) { return new Date(parseInt(nS) * 1000).toLocaleString().repl ...
- Android图像处理之冰冻效果
原图 效果图 代码: package com.colo ...
- ThinkPHP5如何修改默认跳转成功和失败页面
ThinkPHP5如何修改默认跳转成功和失败页面 一.总结 一句话总结:直接修改默认跳转页面对应的模板文件的路径:'dispatch_success_tmpl' => APP_PATH . 'i ...
- a标签中的javascript:;是什么
a标签中的javascript:;是什么 一.问题 <a>标签中href="javascript:;"表示什么意思?? <a id="jsPswEdit ...
- [ Java ] [ Eclipse ] 加速 Eclipse 載入速度-轉載
加速 Eclipse 載入速度-轉載 https://read01.com/NJjNOB.html
- qrcode length overflow 生成二维码网址长度溢出解决办法
QRCode.js is javascript library for making QRCode. QRCode.js supports Cross-browser with HTML5 Canva ...
- dhclient---获取动态IP
dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数. 语法 dhclient(选项)(参数) 选项 0:指定dhcp客户端监听的端口号: -d:总是以前台方式运行程序: -q:安静模 ...