javascript面向对象思想
来源:互联网 发布:ps4数码宝贝网络侦探 编辑:程序博客网 时间:2024/06/06 16:31
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面向对象思想
- javascript面向对象思想
- JavaScript面向对象的思想
- JavaScript面向对象思想详解
- JavaScript使用面向对象思想处理cookie
- JavaScript使用面向对象思想处理cookie
- JavaScript使用面向对象思想处理cookie .
- Javascript 中面向对象的思想
- JavaScript 面向对象思想以及原型、继承
- JavaScript 面向对象思想以及原型、继承
- JavaScript 面向对象思想以及原型、继承
- javascript高级程序员必须要懂的-----面向对象的思想
- javascript中有趣的面向对象的思想
- javascript中面向对象思想的体现(一)
- 面向对象思想
- 面向对象程序设计思想
- 基础知识----面向对象思想
- 面向对象核心思想
- 小白课堂之·Unity基础篇(Unity破解)
- Java位移运算符
- Java四种线程池的使用
- CSS文本超过限定长度设置省虐号
- java Map及其实现类
- javascript面向对象思想
- 微信分享二
- 页面来回切换js
- 高性能数据库连接池的内幕
- 结合Yocto Qemu与Eclipse单步调试开发Linux Kernel
- 如何开发自己的通用Mapper
- Cleanup failed to process the following paths错误的解决
- A Brief Introduction Of TensorFlow
- codeforces 789B(分类讨论)