JavaScript面向对象实现

一:面向对象三大特征

继承,封装,多态!

二:JavaScript自定义对象

 创建对象的方式:

方式1,对象初始化器方式;

  1. <script type="text/javascript">
  2. var marry={
  3. name:"marry",
  4. age:2,
  5. getMarry:function (){
  6. alert("我是"+this.name+"今年"+this.age+"岁了!");
  7. },
  8. action:function(){
  9. alert("哈哈哈");
  10. }
  11. };
  12. alert(marry.name);
  13. alert(marry.age);
  14. marry.getMarry();
  15. marry.action();
  16. </script>

方式2,构造函数方式;

  1. <script type="text/javascript">
  2. function Dog(name,age){
  3. this.name=name;
  4. this.age=age;
  5. this.getDog=function(){
  6. alert("我是"+this.name+"今年"+this.age+"岁了!");
  7. };
  8. this.action=function(){
  9. alert("会跑,会跳!");
  10. };
  11. };
  12. var dog=new Dog("二狗",1);
  13. alert(dog.name);
  14. alert(dog.age);
  15. dog.getDog();
  16. dog.action();
  17. </script>

对象属性定义:

私有属性;对象属性;类属性;

  1. <script type="text/javascript">
  2. function C(){
  3. this.objPro="对象属性";
  4. C.prototype.objPro2="对象属性2";
  5. var pro="私有属性";
  6. function fun2(){
  7. alert(pro);
  8. };
  9. return fun2();
  10.  
  11. }
  12. C.classpro="类属性";
  13. var c=new C();
  14. alert(c.objPro);
  15. alert(c.objPro2);
  16. alert(C.classpro);
  17. var result=C;
  18. result();
  19. </script>

对象方法定义:私有方法;实例方法;类方法;

  1. <script type="text/javascript">
  2. function C(){
  3. var privateFunc=function(){
  4. alert("私有方法!");
  5. };
  6. privateFunc();
  7. this.func=function(){
  8. alert("对象方法1");
  9. };
  10. C.prototype.func2=function(){
  11. alert("对象方法2");
  12. }
  13. }
  14. C.classFunc=function(){
  15. alert("类方法!");
  16. }
  17. C.classFunc();
  18. var c=new C();
  19. c.func();
  20. c.func2();
  21. </script>

三:JavaScript实现封装特性

四:JavaScript实现继承特性

Apply()实现属性和方法的继承;

  1. <script type="text/javascript">
  2. function Animal(name,age){
  3. this.name=name;
  4. this.age=age;
  5. this.func=function(){
  6. alert("我是"+this.name+"今年"+this.age+"岁了!");
  7. };
  8. this.action=function(){
  9. alert("跳,跑!");
  10. }
  11. }
  12. function Dog(name,age){
  13. Animal.apply(this, [name,age]);
  14. }
  15. var dog=new Dog("二狗",3);
  16. alert(dog.name);
  17. alert(dog.age);
  18. dog.func();
  19. dog.action();
  20. </script>

Prototype实现原型的继承;

  1. <script type="text/javascript">
  2. function Animal(name,age){
  3. this.name=name;
  4. this.age=age;
  5. this.func=function(){
  6. alert("我是"+this.name+"今年"+this.age+"岁了!");
  7. };
  8. this.action=function(){
  9. alert("跳,跑!");
  10. }
  11. }
  12. function Dog(name,age){
  13. Animal.apply(this, [name,age]);
  14. }
  15. Dog.prototype=new Animal();
  16. var dog=new Dog("二狗",3);
  17. alert(dog.name);
  18. alert(dog.age);
  19. dog.func();
  20. dog.action();
  21. </script>

五:JavaScript实现多态特性

JavaScript模拟多态实现!

  1. <script type="text/javascript">
  2. function Animal(){
  3. this.say=function(){
  4. alert("我是动物");
  5. };
  6. }
  7. function Dog(){
  8. this.say=function(){
  9. alert("我是狗");
  10. };
  11. }
  12. function Cat(){
  13. this.say=function(){
  14. alert("我是猫");
  15. };
  16. }
  17. Dog.prototype=new Animal();
  18. Cat.prototype=new Animal();
  19. function say(animal){
  20. if(animal instanceof Animal){
  21. animal.say();
  22. }
  23. }
  24. var dog=new Dog();
  25. var cat=new Cat();
  26. dog.say();
  27. cat.say();
  28. </script>

JavaScript面向对象实现的更多相关文章

  1. JavaScript学习笔记(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  2. JavaScript学习总结(三)——this、原型、javascript面向对象

    一.this 在JavaScript中this表示:谁调用它,this就是谁. JavaScript是由对象组成的,一切皆为对象,万物皆为对象.this是一个动态的对象,根据调用的对象不同而发生变化, ...

  3. Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇

    Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript ...

  4. javascript面向对象系列第四篇——选项卡的实现

    前面的话 面向对象的应用并非只是读几本书那么容易,需要有大量的工程实践做基础才能真正理解并学会使用它.本文将用面向对象的技术来制作一个简单的选项卡 图示说明 由图示结果看到,这是一个非常简单的选项卡. ...

  5. javascript面向对象系列第三篇——实现继承的3种形式

    × 目录 [1]原型继承 [2]伪类继承 [3]组合继承 前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.本文是javascript面向对象系列第三篇——实现继承的3种形式 [ ...

  6. javascript面向对象系列第一篇——构造函数和原型对象

    × 目录 [1]构造函数 [2]原型对象 [3]总结 前面的话 一般地,javascript使用构造函数和原型对象来进行面向对象编程,它们的表现与其他面向对象编程语言中的类相似又不同.本文将详细介绍如 ...

  7. Javascript面向对象(封装、继承)

    Javascript 面向对象编程(一):封装 作者:阮一峰 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程( ...

  8. 《javascript面向对象精要》读书笔记

    <javascript面向对象精要> 买这本书的原因主要是因为作者,Nicholas C. Zakas 牛X闪闪的js专家,读过js高程的应该都知道他,而这本书是他的最新力作,感觉也是js ...

  9. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  10. javascript面向对象(一):封装

    本文来自阮一峰 学习Javascript,最难的地方是什么? 我觉得,Object(对象)最难.因为Javascript的Object模型很独特,和其他语言都不一样,初学者不容易掌握. 下面就是我的学 ...

随机推荐

  1. 写给W小姐的一封信

    生活 琐碎 Hallo,Preaty.对于跟人说话,我很不擅长如何开头.我不知道什么样的开头是符合我在别人心目中我应有的形象.我不知道什么样的开头符合别人预想中与我相匹配的内容.或者说什么的开头才是一 ...

  2. IntelliJ IDEA导入JDK出现The selected directory is not a valid home for JDK问题的解决方法

    JDK版本与IDEA版本不兼容: JDK版本过高可能会造成这个问题,需与IDEA相兼容的JDK才行. 比如,用IDEA2016.3.8版本的,JDK用jdk-10.0.1_windows-x64_bi ...

  3. linux设置ssh连接时间

    相信大家经常遇到SSH连接闲置一会就断开需要重新连接的痛苦,为了使SSH连接保持足够长的时间,我们可以使用如下两种设置 1.sshd服务配置: #vi /etc/ssh/sshd_config Cli ...

  4. A/B宣言

    作者:Dunne & Raby A B 肯定的  批判的 解决问题的 发现问题的 设计即流程 设计即方法 给出答案 问问题 为行业中服务 为社会服务 说明世界是怎样的 说明世界可能是怎样的 科 ...

  5. vue2.0 路由知识一(路由的创建的全过程)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. WebAPI中Area的使用

    很简单,创建area后,添加一下代码到AreaRegistration中即可 context.Routes.MapHttpRoute( name: "api_default", r ...

  7. 迅为iMX6开发板支持单核,双核,四核处理器,为客户产品选择提供灵活性

    本文转自迅为:http://topeetboard.com 店铺:https://arm-board.taobao.com 处理器:Freescale Cortex-A9 四核 i.MX6Q 主频 1 ...

  8. uiviewcontroller顶级布局控制

    @available(iOS 7.0, *) open var edgesForExtendedLayout: UIRectEdge // Defaults to UIRectEdgeAll @ava ...

  9. java_lock锁

    lock锁是一个接口,jdk5.0新增的接口: 在线程中创建一个他的实现类对象Reentrantlock,默认为fals可以改为true,改为true后是有序的 把操作共享资源的代码放入try中,在t ...

  10. jenkins构建项目记录2(tag)

    与jenkins构建项目记录1不同的是通过tag拉去对应版本代码 1.先安装创建(git parameter) 2.general设置 name可任意命名,下面源码管理设置时变量会引用到. 3.源码管 ...