javascript中的面向对象思想

面向对象
Java编程中万物皆对象,即所有为外界提供属性和方法的整体都可以看做对象,而在面向对象编程中,我们只关注对象提供的属性和方法,而不关注对象本身,所以把代码块封装为一个类对象,不考虑代码块内部结构,只考虑它为我们提供的属性和方法,即为javascript中的面向对象编程
javascript如何做到面向对象oop
学习Java的面向对象思想,我们知道,面向对象的三大特性为继承,封装,多态。并且对象的关键在于暴露出来的属性和方法。从这两个方面可以讨论出javascript如何做到面向对象编程。

javascript的封装,继承,多态

Javascript中的函数就是对于功能的一种封装,函数包括普通函数和构造函数两类,构造函数是对象创建的基础。javascript中函数也是对象的一种。封装即将功能和属性封装为一个函数模块,供外部调用。继承是从已经存在的对象上,继承出新的对象。
多态表示在继承父级对象特性的基础上拥有不同的表现形式。
举例来说:数组也是一个对象,数组中的所有方法都是对象方法,数组中的属性和变量类似,只是属性是属于对象的变量。同样数组中的方法实质也是函数,只是属于对象。this决定这个方法属于哪个对象。

模拟Java构建工厂

function creatFaction(name,sex){
//使用javascript构造函数模拟java对象工厂
this.name=name;
this.sex=sex;
this.showName=function(){alert(this.name);                    }
}
//调用工厂函数构建对象举例:
var p1=new creatFaction('zhangsan','nv');
p1.showName();

javascript面向对象中的原型思想
原型可以类比于css中的class样式。
给一个对象单独加方法相当于css中的行间样式。
使用原型可以为一类对象添加属性和方法。

 对象名.prototype.方法名=function()

同样原型相当于Java中的工厂类,工厂并不具有实际功能,只是为了构造对象。原型本身也不提供方法,而是通过原型new出的对象,具有原型中定义的方法。同样在javascript中的构造函数为new出的对象提供属性,所以一定意义上说javascript中构造函数即为工厂类(js特有)
综上所述:在构造函数中添加属性,在原型中添加方法。可以解决工厂函数两个问题。因为属性每个对象都不同,是对象特有(类似行内样式),用构造函数来设置。但是方法对每个对象都一样的操作,所以用原型来添加。(类似class里面样式)

function Faction(name,sex){
//使用构造函数和原型完整模拟对象工厂
this.name=name;
this.sex=sex;
}
Faction.prototype.showName=function(){//方法showName
};

使用json实现面向对象
在javascript中json既可以存储变量,也可以存储方法,并且json本身也是一个对象。

      var p={name:'zyv',//属性six:'nv',show:function(){//方法alert(this.name);}}//调用:p.show();

缺点:不适应于生成大量类似对象(工厂),一个json生成一个对象。
优势:(命名空间)即json里面的属性可以是另一个json(json嵌套),这样可以把不同的属性和方法按照分支数的形式分别放在json不同分支下,调用时只要多层调用即可(json包json)(同一类的方法包在一个json属性里面)类似于java中的包

var zong={};zong.caiwu={show1:function(){},show2:function(){}}zong.huodong={ha:function(){},sa:function(){}}//调用:zong.caiwu.show1();

javascript面向对象思想相关推荐

  1. JavaScript 面向对象编程思想简介

    JavaScript 面向对象编程 JavaScript 执行过程 JavaScript 面向对象编程 面向对象介绍 什么是对象 什么是面向对象 程序中面向对象的基本体现 创建对象 简单方式 简单方式 ...

  2. JavaScript 面向对象编程思想

    JavaScript 面向对象编程思想 什么是面向对象 面向对象不是新的东西,它只是过程式代码的一种高度封装,目的在于提高代码的开发效率和可维护性. 面向对象编程 -- Object Oriented ...

  3. JavaScript 面向对象 (prototype 原型模式)

    一. JavaScript 设计思想 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时.但是,这个版本的浏览器只能用来浏览 ...

  4. javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程

    学习目标 理解面向对象开发思想 掌握 JavaScript 面向对象开发相关模式 面向对象介绍 什么是对象 Everything is object (一切皆对象) 我们可以从两个层次来理解对象: ( ...

  5. Javascript面向对象研究心得

    这段时间正好公司项目须要,须要改动fullcalendar日历插件,有机会深入插件源代码.正好利用这个机会,我也大致学习了下面JS的面向对象编程,感觉收获还是比較多的. 所以写了以下这篇文章希望跟大家 ...

  6. JavaScript 面向对象编程(三) —— 函数进阶 / 严格模式 / 高阶函数 / 闭包 / 浅拷贝和深拷贝

    本篇为 JavaScript 进阶 ES6 系列笔记第三篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 系列笔记: JavaScript 面 ...

  7. JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法

    本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...

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

    前面的话 学习如何创建对象是理解面向对象编程的第一步,第二步是理解继承.开宗明义,继承是指在原有对象的基础上,略作修改,得到一个新的对象.javascript主要包括类式继承.原型继承和拷贝继承这三种 ...

  9. javascript 面向对象 new 关键字 原型链 构造函数

    JavaScript面向对象 JavaScript 语言使用构造函数(constructor)作为对象的模板.所谓"构造函数",就是专门用来生成实例对象的函数.它就是对象的模板,描 ...

最新文章

  1. openssl升级_CVE20201967: openssl 拒绝服务漏洞通告
  2. Neo4j-学习资料
  3. Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
  4. Vulkan in 30 minutes
  5. 将 SharePoint 2010 网站集升级到 2013 (含沙盒方案)
  6. Thinkphp双轨直销系统源码
  7. matlab显示数据类型,MATLAB查看数据类型
  8. 你走后 爱情的遗址像是空城
  9. 用于excel(或wps)中进行ip处理转换的vbs模块
  10. 银行HR讲述实习生转正故事:寒门真的再难出贵子
  11. Excel快速入门01
  12. NOIP模拟赛csy2021/10/30
  13. opencv2 设置摄像头参数问题
  14. html if函数,IF条件判断函数还不会就out了,IF函数七种条件判断用法都在这
  15. 如何判断某一个IP地址是否被占用
  16. 制作网上投票链接制作可以投票的链接制作制作一个投票链接
  17. 论文阅读:Instance-aware Semantic Segmentation via Multi-task Network Cascades
  18. matlab用进退法写程序,进退法matlab程序
  19. 用孔子装爹学习java三大特性之多态
  20. Vaa3D_批量将tiff文件转化成v3draw文件

热门文章

  1. 居然之家X阿里,能制造什么样的新零售?
  2. SQL server 修改表数据
  3. JavaScript百炼成仙 1
  4. 计算机中的cnc代表什么意思,cnc加工是什么意思 什么是cnc加工中心
  5. 如何正确的对拍程序?
  6. 『容斥·状压』CF449D Jzzhu and Numbers
  7. 用js实现基于Base64的数据或者图片的编码与解码
  8. IIS MMC无法创建管理单元
  9. 《算法思维——一种问题驱动的思维方式》之第9篇:数据结构之动态栈篇——采用JavaScript编程语言实现
  10. Layui 弹窗 -全面使用