js中的面向对象
来源:互联网 发布:java 递归删除子节点 编辑:程序博客网 时间:2024/06/10 09:29
什么是对象?
万物皆对象,比如电视机就是一个对象,很具体的一个实例。
什么是面向对象OOP(Object Oriented Programming)?(是一种思想) 。
1使用对象时,只关注对象提供的功能,不关注其内部细节,
2可以构造新对象。
OOP有哪些特点?
抽象:抓住关键需要的点(比如员工工资发放系统,只需要知道名字,工号就可以,不需要身高,体重之类的属性)
封装:电视机就像个黑盒子,内部的原理电路板什么都不用管,只要会用表面的功能就好啦!比如JQ,会用就行,里面的原理可暂时不管。
继承: 父亲有一些功能,儿子继承了这些功能。儿子还可以根据自己的需要有些新的功能和特征。目的是为了最大目的的重用代码。
多重继承: 简单的说,就是一个儿子多个爹。比如盒子:能装东西,汽车:能跑。合起来遗传给后代,就是货车。
函数: 在对象里面就叫做方法,一个东西。函数跟对象绑在一起的话,就叫做方法了。
变量: 在对象里面就叫做属性,一个东西。 变量跟对象绑在一起的时候就叫做变量了。比如变量是女朋友,结婚后就叫做老婆了。同一个东西,只不过从属于我了,是我的女人,就变成了老婆。
OOP的组成
方法——函数:过程、动态的。
属性——变量:状态、静态的。
对象:属性和方法构成的,(其实就是挂载在某个对象上面的变量和函数)
构造函数: 其实是普通的函数,只是它的功能是用来构造对象的函数
function fn(a,b){ //构建对象的代码块}
工厂摸式:
原料:(objiect);
加工:(构建方式和属性);
出厂:(return);
工厂方式:这个函数的工作流程有点像工厂加工产品,所以叫工厂模式。如下
function fn(a,b){ //创建原料 <!-- var obj = new Object();--> //加工产品 obj.name = name; obj.yongchu = function(){ alert("obj的用途是XXX") } //产品出厂 <!--return obj;-->}var obj = fn("one","eat") //没有new关键字var obj2 = fn("two","eat")alert(obj.yongchu == obj2.yongchu) //false功能一样却不相等,同样功能占用了更多的内存,浪费。
工厂方式缺点:
1.没有new。
2.不同对象具有相同方法时,方法却不相等,这就占用了内存;
解决方案:
function CreatePerson(name,sex){ //构造函数里面写属性,CreatePerson首字母大写 this.name = name; this.sex= sex; } createPerson.prototype.showName = function(){ //原型里面写方法 alert("我的名字" + this.name); } createPerson.prototype.showsex = function(){ alert("我的sex" + this.sex); } var obj = new createPerson("mike","123456"); obj.showName(); obj.showsex();
这就是较为完整无缺的面向对象写法!
原型模式
这里要记住一句话:构造函数中的属性和方法在每个对象实例之间都不是共享的,都是各自搞一套;而要想实现共享,就要将属性和方法存到构造函数的原型中。
- js中的面向对象
- js中的面向对象
- js中的面向对象
- js中的面向对象程序设计
- JS中的prototype(面向对象)
- js中的面向对象程序设计
- js中的面向对象入门
- js中的面向对象入门
- js中的面向对象和原型
- JS---感悟 JavaScript中的面向对象
- 深入理解js面向对象中的prototype
- js中的面向对象程序设计(3)-继承
- 深入理解js面向对象中的prototype
- js中的面向对象程序设计(2)-创建对象
- OOP In JS [JS脚本中的面向对象]
- OOP In JS [JS脚本中的面向对象]
- OOP In JS [JS脚本中的面向对象]
- OOP In JS [JS脚本中的面向对象]
- 线性探测法的查找函数
- Leetcode513. Find Bottom Left Tree Value
- 鼠标拖拽,阻止默认事件、事件冒泡。
- 如何连接远程服务器的MySQL
- Mac上安装MySQL
- js中的面向对象
- leetcode十二周解题报告
- Linux常用命令学习总结三(which,find,文件系统,df,du)
- 20、结果集映射之一对多关联映射
- CXF整合Spring通过tomcat发布webservice
- 前端学习框架
- 一个开始
- BIEE 12c客户化报表导出菜单项
- 21、参数的传递