javascript面向对象特征

原创 2015年11月19日 08:26:58
<span style="font-size:18px;"><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<script type="text/javascript">
document.write("js面向对象:封装");
function Person(name,sal){
this.name=name; //公开
var sal=sal;//私有

this.showInfo=function(){ //公开
document.write("<br/>"+this.name+"--"+sal);
}
}
var per=new Person("tom",100);
per.showInfo();
document.write("<br/>js面向对象:继承");
//1.抽取共有属性,写一个父类
function Stu(name,age){
this.name=name;
this.age=age;
this.show=function(){
document.write("<br/>"+this.name+"--"+this.age);
}
}
function MidStu(name,age){
//这里相当于把Stu构造函数(类)赋值给我们的属性this.stu
this.stu=Stu;
//这个表示初始化MidStu,相当于执行Stu(name,age),这句话必须有,否则无法实现集成的效果
this.stu(name,age);
//可以写自己的函数
this.pay=function(fee){
document.write("<br/>学费是:"+fee*0.8);
}
}
var midstu=new MidStu("小白",15);
midstu.show();
midstu.pay(100);
document.write("<br/>js面向对象:重载");
//js通过判断参数的个数来实现重载
function Person1(){

this.test1=function (){

if(arguments.length==1){
this.show1(arguments[0]);
}else if(arguments.length==2){
this.show2(arguments[0],arguments[1]);
}else if(arguments.length==3){
this.show3(arguments[0],arguments[1],arguments[2]);
}


}
this.show1=function(a){
document.write("show1()被调用"+a);
}


this.show2=function(a,b){
document.write("show2()被调用"+"--"+a+"--"+b);
}


function show3(a,b,c){
document.write("show3()被调用");
}
}
var p1=new Person1();
//js中不支持重载.
//p1.test1("a","b","c");
p1.test1("a","b");
p1.test1("a");
document.write("<br/>js面向对象:覆盖");
function Fu(){
this.fu=function(){
document.write("<br/>父类的方法");
}
}
function Zi(){
this.stu=Fu;
this.stu();
this.fu=function(){
document.write("<br/>子类的方法");
}
}
var zi=new Zi();
zi.fu();
document.write("<br/>js面向对象:多态");
// Master类
function Master(name){
this.nam=name;
//方法[给动物喂食物]  
}
//原型法添加成员函数
Master.prototype.feed=function (animal,food){

document.write("<br>给"+animal.name+" 喂"+ food.name);
}
function Food(name){
this.name=name;
}
//鱼类
function Fish(name){
this.food=Food;
this.food(name);
}
//骨头
function Bone(name){
this.food=Food;
this.food(name);
}
//桃子
function Peach(name){
this.food=Food;
this.food(name);
}
//动物类
function Animal(name){
this.name=name;
}
//猫猫
function Cat(name){
this.animal=Animal;
this.animal(name);
}
//狗狗
function Dog(name){
this.animal=Animal;
this.animal(name);
}
//猴子
function Monkey(name){
this.animal=Animal;
this.animal(name);
}
var cat=new Cat("大花猫");
var fish=new Fish("黄花鱼");
var dog=new Dog("大花狗");
var bone=new Bone("猪骨头");
//创建一个主人
var master=new Master("韩顺平");
master.feed(dog,bone);
//扩展
var monkey=new Monkey("金丝猴");
var peach=new Peach("仙桃");
master.feed(monkey,peach);
</script>
<body>
</body>
</html></span>

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

26-JavaScript-面向对象-三大特征-重载和覆盖

-JS面向对象编程 -- 三大特征   - 封装   - 继承   - 多态 -重载和覆盖 -综合案例 1. 概念  1.1 抽象     把一类事物共有的属性和行...

面向对象在javascript中的三大特征之继承

继承 在JavaScript中的继承的实质就是子代可以拥有父代公开的一些属性和方法,在js编程时,我们一般将相同的属性放到父类中,然后在子类定义自己独特的属性,这样的好处是减少代码重复。继承是面向...

面向对象在javascript中的三大特征之封装

封装 封装(Encapsulation):就是把对象内部数据和操作细节进行隐藏。很多面向对象语言都支持封装特性,提供关键字如private来隐藏某些属性和方法。要想访问被封装对象中的数据,只能使用...

韩顺平 javascript教学视频_学习笔记19_js面向对象三大特征(封装,继承,多态)

js面向对象编程------三大特征 封装继承多态 面向对象的三大特征对任意的面向对象语言都是具有的,只是表现形式不一样 面向对象的三大特征都是先从抽象这个概念出来的 ...

面向对象的特征

面向对象的三个基本特征概述

本文地址:http://blog.csdn.net/wfwd/article/details/763753 面向对象的三个基本特征是:封装、继承、多态。 封装 封装最好理解了...

面向对象的特征之二继承

1、面向对象的三大特征 封装 (Encapsulation) 继承 (Inheritance) 多态 (Polymorphism)2、为什么要有继承? 多个类中存在相同属性和行为时,将这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)