摘要:谈一谈我对面向对象的理解普通过程式写法就是一步一步按着逻辑去写代码,而面向对象是以对象的思想写代码,把所有的属性跟方法挂载在对象上,需要调用的是一个对象出来我们一直都在使用对象对象下面的属性对象下面的方法面向对象编程特点抽象抓住核心问题封装
1.谈一谈我对面向对象的理解
普通过程式写法就是一步一步按着逻辑去写代码,而面向对象是以对象的思想写代码,把所有的属性跟方法挂载在对象上,需要调用的是new一个对象出来
我们一直都在使用对象:Array,Date
ar arr = new Array() arr.length //对象下面的属性 arr.push() //对象下面的方法
面向对象编程(oop)特点
● 抽象:抓住核心问题
● 封装:只能通过对象来访问方法,如arr.push()
● 继承:从已有对象上继承出新的对象
● 多态:多对象的不同形态(在js中用的比较少)
构造函数:new后面调用的函数叫做构造函数
this指向问题
● 当new去调用一个函数,this就是创建出来的对象而且函数的返回值直接就是this
面向对象的组成:方法、属性
面向对象的方法(行为、操作):函数、过程、动态的
//对象方法:对象下面的函数 arr.sort = function(){ alert("1") }_
面向对象的属性(变量):状态、静态的
//对象下面的属性:对象下面的变量 var arr=[]; arr.number = 10; alert(arr.nuber)3.Prototype模式
如果创建的对象多了,那么同样的方法会存在很多份,为了提高性能,所以用.Prototype模式 (去改写对象下面共用的方法和属性,让共用的方法或者属性在内存中存在一份)
原型:类似于css中的class
普通:方法看做是css中的style
//原型写法 function Show(){ this.name = 3; }; Show.prototype.showName = function(){ var This = this; alert(This.name) }; var p1 = new Show(); p1.showName()4.系统中的对象使用
js就是基于原型的程序
例如数组的push方法: arr.push(); Array.prototype.push = function(){}
注意:尽量不要去修改或者添加系统对象下面的方法和属性
5.对象的继承有时候封装好的函数并不一定在项目的任何地方都是可以直接复用,这时候就需要在原有的对象上新生成一个新的对象来满足当前的需求
什么是继承:
● 在原有对象的基础上,略作修改,得到一个新的对象
● 不影响原有对象的功能
如何继承
属性的继承:
function 新的函数(){ createPerson.call(this,需要的属性,需要的属性) }
方法的继承:
for(var attr in 原有函数){ 新函数.prototype[attr] = 有函数.prototype[attr] }如果有写的不好的地方请不吝赐教,不胜感激!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/90841.html
摘要:是完全的面向对象语言,它们通过类的形式组织函数和变量,使之不能脱离对象存在。而在基于原型的面向对象方式中,对象则是依靠构造器利用原型构造出来的。 JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什...
摘要:更形象的我们还可以将面向对象理解为一种宗教信仰。这就导致面向对象教的程序员们在写时就很难受。所以为了满足信仰面向对象教的需求通过构造函数的形式模拟了伪类。这个套路的核心就是类那么里没有类所以其实是通过构造函数来模拟的伪类。 JS面向对象之一 【概述】 在学习JS的面向对象之前,我们应该先自问这样几个问题: 面向对象是什么意思? 学习面向对象的核心是什么? 为什么要学习面向对象?(它的...
摘要:对象重新认识面向对象面向对象从设计模式上看,对象是计算机抽象现实世界的一种方式。除了字面式声明方式之外,允许通过构造器创建对象。每个构造器实际上是一个函数对象该函数对象含有一个属性用于实现基于原型的继承和共享属性。 title: JS对象(1)重新认识面向对象 date: 2016-10-05 tags: JavaScript 0x00 面向对象 从设计模式上看,对象是...
摘要:自己的理解的第一个参数就是的值如果没用默认是那个调用函数的当前的对象在全局作用域中就是被隐藏的所以不写且在全局作用于调用函数的时候就是可以使用或者自己指定的指向 JS面向对象一:MVC的面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) showImg(https://segmentfault.com/img/remote/1460000016...
摘要:虽然,也是面向疾苦的语言,但是,它和静态类型语言的面向接口编程不一而足。对象对他自己的行为负责,其他对象不关心它的内部实现。 ‘工欲善其事,必先利其器’,在深入学习JavaScript之前,我认为我们很有必要了解以下,JavaScript这门面向对象的动态语言到底是一门什么样的语言。 JavaScript vs 其他面向对象语言 它没有使用像Java等传统的面向对象语言的类式继承,而...
阅读 2952·2021-11-24 09:39
阅读 2860·2021-09-29 09:34
阅读 3555·2021-09-24 10:23
阅读 1739·2021-09-22 15:41
阅读 1692·2019-08-30 15:55
阅读 3509·2019-08-30 13:58
阅读 2616·2019-08-30 13:11
阅读 1664·2019-08-29 12:31