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模型很独特,和其他语言都不一样,初学者不容易掌握. 下面就是我的学 ...
随机推荐
- 常用linux命令大全 转载自:https://www.cnblogs.com/laov/p/3541414.html(大牛笔记)
Linux简介及Ubuntu安装 Linux,免费开源,多用户多任务系统.基于Linux有多个版本的衍生.RedHat.Ubuntu.Debian 安装VMware或VirtualBox虚拟机.具体安 ...
- android ListView 分析(一)
需要了解的内容 1. listview中的getItemAtPosition与Adapter的getItem的position的区别 listView中的getItemAtPosit ...
- Objective -C Categories
Objective -C Categories The dynamic runtime dispatch mechanism employed by Objective-C lets you add ...
- 契约式设计(DbC)感想(二)
契约式设计6大原则的理解 在<Design by Contract原则与实践>中,作者定义了契约式设计的6大原则: 区分命令和查询: 将基本查询和派生查询区分开: 针对每个派生查询,设定一 ...
- 针对windowsserver 创建iis站点访问出错的解决方案(HTTP 错误 500.19 - Internal Server Error)
错误如下: 服务器错误 Internet信息服务 7.0 错误摘要HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详 ...
- createlang - 定义一种新的 PostgreSQL 过程语言
SYNOPSIS createlang [ connection-option...] langname [ dbname] createlang [ connection-option...] -- ...
- ALTER TRIGGER - 修改一个触发器的定义
SYNOPSIS ALTER TRIGGER name ON table RENAME TO newname DESCRIPTION 描述 ALTER TRIGGER 改变一个现有触发器的属性. RE ...
- windos快捷键
F1帮助 F2改名 F3搜索 F4地址 F5刷新 F6切换 F10菜单 CTRL+A全选 CTRL+C复制 CTRL+X剪切 CTRL+V粘贴 CTRL+Z撤消 CTRL+O打开 SHIFT+DELE ...
- 第2节 mapreduce深入学习:4, 5
第2节 mapreduce深入学习:4.mapreduce的序列化以及自定义排序 序列化(Serialization)是指把结构化对象转化为字节流. 反序列化(Deserialization)是序列化 ...
- Timer时钟(之一)
using System.Timers; static void Main(string[] args) { ThreadingTimer(); DateTime a = DateTime.Now; ...