JavaScript面向对象实现
JavaScript面向对象实现
一:面向对象三大特征
继承,封装,多态!
二:JavaScript自定义对象
创建对象的方式:
方式1,对象初始化器方式;
<script type="text/javascript">
var marry={
name:"marry",
age:2,
getMarry:function (){
alert("我是"+this.name+"今年"+this.age+"岁了!");
},
action:function(){
alert("哈哈哈");
}
};
alert(marry.name);
alert(marry.age);
marry.getMarry();
marry.action();
</script>
方式2,构造函数方式;
<script type="text/javascript">
function Dog(name,age){
this.name=name;
this.age=age;
this.getDog=function(){
alert("我是"+this.name+"今年"+this.age+"岁了!");
};
this.action=function(){
alert("会跑,会跳!");
};
};
var dog=new Dog("二狗",1);
alert(dog.name);
alert(dog.age);
dog.getDog();
dog.action();
</script>
对象属性定义:
私有属性;对象属性;类属性;
<script type="text/javascript">
function C(){
this.objPro="对象属性";
C.prototype.objPro2="对象属性2";
var pro="私有属性";
function fun2(){
alert(pro);
};
return fun2(); }
C.classpro="类属性";
var c=new C();
alert(c.objPro);
alert(c.objPro2);
alert(C.classpro);
var result=C;
result();
</script>
对象方法定义:私有方法;实例方法;类方法;
<script type="text/javascript">
function C(){
var privateFunc=function(){
alert("私有方法!");
};
privateFunc();
this.func=function(){
alert("对象方法1");
};
C.prototype.func2=function(){
alert("对象方法2");
}
}
C.classFunc=function(){
alert("类方法!");
}
C.classFunc();
var c=new C();
c.func();
c.func2();
</script>
三:JavaScript实现封装特性
四:JavaScript实现继承特性
Apply()实现属性和方法的继承;
<script type="text/javascript">
function Animal(name,age){
this.name=name;
this.age=age;
this.func=function(){
alert("我是"+this.name+"今年"+this.age+"岁了!");
};
this.action=function(){
alert("跳,跑!");
}
}
function Dog(name,age){
Animal.apply(this, [name,age]);
}
var dog=new Dog("二狗",3);
alert(dog.name);
alert(dog.age);
dog.func();
dog.action();
</script>
Prototype实现原型的继承;
<script type="text/javascript">
function Animal(name,age){
this.name=name;
this.age=age;
this.func=function(){
alert("我是"+this.name+"今年"+this.age+"岁了!");
};
this.action=function(){
alert("跳,跑!");
}
}
function Dog(name,age){
Animal.apply(this, [name,age]);
}
Dog.prototype=new Animal();
var dog=new Dog("二狗",3);
alert(dog.name);
alert(dog.age);
dog.func();
dog.action();
</script>
五:JavaScript实现多态特性
JavaScript模拟多态实现!
<script type="text/javascript">
function Animal(){
this.say=function(){
alert("我是动物");
};
}
function Dog(){
this.say=function(){
alert("我是狗");
};
}
function Cat(){
this.say=function(){
alert("我是猫");
};
}
Dog.prototype=new Animal();
Cat.prototype=new Animal();
function say(animal){
if(animal instanceof Animal){
animal.say();
}
}
var dog=new Dog();
var cat=new Cat();
dog.say();
cat.say();
</script>
JavaScript面向对象实现的更多相关文章
- JavaScript学习笔记(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- JavaScript学习总结(三)——this、原型、javascript面向对象
一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...
- Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇
Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript ...
- javascript面向对象系列第四篇——选项卡的实现
前面的话 面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它.本文将用面向对象的技术来制作一个简单的选项卡 图示说明 由图示结果看到,这是一个非常简单的选项卡. ...
- javascript面向对象系列第三篇——实现继承的3种形式
× 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...
- javascript面向对象系列第一篇——构造函数和原型对象
× 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...
- Javascript面向对象(封装、继承)
Javascript 面向对象编程(一):封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程( ...
- 《javascript面向对象精要》读书笔记
<javascript面向对象精要> 买这本书的原因主要是因为作者,Nicholas C. Zakas 牛X闪闪的js专家,读过js高程的应该都知道他,而这本书是他的最新力作,感觉也是js ...
- 【转】javascript面向对象编程
摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...
- javascript面向对象(一):封装
本文来自阮一峰 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握. 下面就是我的学 ...
随机推荐
- 死磕 java集合之LinkedList源码分析
问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟ArrayList比较? (4)我为什么把LinkedL ...
- 浅谈网上的zoomlistview存在的问题
最近项目主要是做一个类似wps文档阅历的功能,以列表的形式显示文档,并且需要实现缩放平移.而网上关于此类功能的实现主要是通过自定义的listview实现的,类名为ZoomListView. 网上的zo ...
- 掌握Spark机器学习库-07-回归分析概述
1)回归与分类算法的区别 回归的预测结果是连续的,分类的预测结果是离散的. 2)spark实现的回归算法有: 3)通过相关系数衡量线性关系的程度
- php判断是否引入某文件
Code: /* 判断是否引入了公共文件demo.php */ $include_files = get_included_files(); $include_files_exist = 0 ; fo ...
- Node.js——body方式提交数据
引入核心模块 http,利用其 api(http.createServer) 返回一个 http.server 实例,这个实例是继承于net.Server,net.Server 也是通过net.cre ...
- Chrome 引起的蓝屏 MULTIPLE_IRP_COMPLETE_REQUESTS (44)
如果你使用Chrome的时候出现经常性蓝屏, 可以试试这么做, 或许问题就解决了.
- jQuery 冒泡事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- cksum - 一个文件的检查和以及字节数
SYNOPSIS(总览) ../src/cksum [OPTION]... [FILE]... DESCRIPTION(描述) 输出CRC(循环冗余校验码)检查和以及每个FILE的字节数. --hel ...
- 第1节 yarn:13、yarn资源调度的介绍
Yarn资源调度 yarn集群的监控管理界面: http://192.168.52.100:8088/cluster jobHistoryServer查看界面: http://192.168.52.1 ...
- P2P实现的原理
为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN.ICE等)实现细节,要么中间有很多纰漏.最后去伪存真,归纳总结了一下,希 ...