首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面向对象思想总结 新手如何理解JS面向对象开发

一、面向过程思想和面向对象思想 面向对象面向过程思想有着本质上区别,作为面向对象思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程思维,你应该分析这个问题里面有哪些类和对象...三、面向对象设计思想 面向对象基本思想是,从现实世界中客观存在事物出发来构造软件系统,并在系统构造中尽可能运用人类自然思维方式。...类是用于描述同一类对象一个抽象概念,类中定义了这一类对象所具有的静态属性和动态属性 类可以看成一类对象模板,对象可以看成该类一个具体实例。 新手如何理解JS面向对象开发?...今天有时间讲讲我对面向对象理解跟看法,尽量用通俗语言来表达,多多指教! 如今前端开发已经越来越火了,对于前端开发要求也是越来越高了,在面试中,经常有面试官会问:你对JS面向对象熟悉吗?...其实,也就是相当于在问你,在工作中有没有用过面向对象开发?说到这里,有人就问了,什么事面向对象面向对象: 用我个人最简单理解表达就是,Object操作。

1.8K20

JS面向对象

JS面向对象 理解对象 数据(数据描述符)属性 数据属性有4个描述内部属性特性 [[Configurable]] 表示能否通过delete删除此属性,能否修改属性特性,或能否修改把属性修改为访问器属性...默认为 undefined 创建/修改/获取属性方法 Object.defineProperty() 功能:方法会直接在一个对象上定义一个新属性,或者修改一个对象现有属性, 并返回这个对象。...语法: Object.defineProperties(obj, props) obj: 将要被添加属性或修改属性对象 props: 该对象一个或多个键值对定义了将要为对象添加或修改属性具体配置...(自有属性指的是直接赋予该对象属性,不需要从原型链上进行查找属性) 语法: Object.getOwnPropertyDescriptor(obj, prop) obj: 需要查找目标对象 prop...1=> js代码: var oInput1 = document.getElementById('input1

7.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

JS面向对象

面向对象面向过程区别面向对象是把构成问题事物拆解为各个对象,来描述这个事物在当前问题中行为,而不是为了实现某个步骤 面向过程,是分析出实现问题每个步骤,然后编写函数,并依次调用。...面向对象特点封装 让使用的人不考虑内部实现,只考虑功能使用,把内部代码保护起来,提供api接口让用户调用继承 从父类继承出一些方法和属性,利于代码复用多态 不同对象作用于同一操作产生不能效果JS三大对象宿主对象所有非本地对象都属于宿主对象所有...DOM和BOM对象都属于宿主对象嵌入到网页JS来说,宿主对象就是浏览器提供,比如:Window和Documnet等本地对象包括:Object、Array、Date、RegExp、Boolean、Number...、String这些引用类型在运行过程中需要通过new来创建所需实例对象内置对象是本地对象子集在ECMAScript程序开始执行前就存在,本身就是实例化内置对象开发者无需再实例化内置独享有Global...构造函数/创建实例 通过this添加对象和属性都指向当前对象,所以在实例化时候,通过this添加方法和属性都会在内存中复制一份。

8910

JS面向对象一:MVC面向对象封装

JS面向对象一:MVC面向对象封装 MDNjavascript面向对象 面向对象(Object-Oriented) ? 面向对象面向意思是以...为主,面向对象编程既以对象为主编程....面向对象一些概念: Namespace 命名空间 允许开发人员在一个独特, 应用相关名字名称下捆绑所有功能容器。 Class 类 定义对象特征。它是对象属性和方法模板定义....类(从MVC提炼面向对象是什么) 使用代码是 模块化、MVC里V和C、闭包与立即执行函数使用和MVC中M(model)、MVC总结 接下来优化老版本message.js 箭头函数内外this相通...总结: 面向对象就是既然这些对象有相同属性和相同行为,那么就把相同地方存到一个地方,当做一个模板.这就叫类 当需要生成对象时候,new一个对象出来,这个对象就有这个模板上属性和行为.这就叫实例化一个对象...面向对象核心就是实例化一个对象 其他:对象方法 以下引用自MDNjavascript面向对象 如果一个Object属性是函数,那么这个属性叫方法 在JavaScript中方法通常是一个绑定到对象普通函数

2.7K20

JS-面向对象

话说,再次看完这个实例后我,开始怀疑面向对象和JSON区别。。。并开始怀疑这是面向对象真实性 <!...还有一只叫小花,今年10岁,花色,请编写一个程序,当用户输入小猫名字时候。就显示该猫名字,年龄,颜色,如果用户输入小猫名字错误,则显示张老太太没有养这只猫。...// var cat1=window.prompt(); /*var cName=window.prompt('请输入猫名字'); function cat(name){ var no='老太太没有这个猫...return no; } } cat(cName); */ //方法2 var cat1={ "name":"小白", "age":"3", "color":"white" } //或者可以第二种声明一个新对象方法....color="白色"; */ var cat2={ "name":"小花", "age":"10", "color":"花色" } /* var cName=window.prompt('请输入小猫名字

1.6K60

JS面向对象编程

面向对象编程 在学习了js高级以及es6之后,再来学习面向对象编程,之前在学习es6,canvas时候已经有接触到了这种思想,感觉还是需要在深入学习一下,这部分内容牵扯到很多原型链部分东西,当做复习一下还是很不错...ES5中面向对象 面向对象编程(OOP)具有灵活、代码可复用、高度模块化等特点。...:js引擎会先寻找对象本身属性和方法,如果找不到就到它原型对象去找,如果还是找不到,就到原型原型去找,如果直到最顶层Object.prototype还是找不到,就会返回undefined constructor...3 obj.a = 2;//我被改了 有关面向对象知识就到这了!...---- 在ES6中新增了class类关键字,以及一些相关属性,优化了先前面向对象代码可读性低问题,新class写法让对象原型写法更加清晰,更加面向对象编程语法,因此class也只是一个语法糖

4K20

js面向对象理解

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象语言有一个标志,那就是类概念,而通过类可以创建任意多个具有相同属性和方法对象。...但是,ECMAScript 没有类概念,因此它对象也与基于类语言中对象有所不同。...js(如果没有作特殊说明,本文中js仅包含ES5以内内容)本身是没有class类型,但是每个函数都有一个prototype属性。...1)__proto__和prototype JS在创建对象(不论是普通对象还是函数对象时候,都有一个叫做__proto__内置属性,用于指向创建它函数对象原型对象prototype。...四.继承 继承是面向对象中一个比较核心概念。其他正统面向对象语言都会用两种方式实现继承:一个是接口实现,一个是继承。

8310

JS面向对象笔记

一、js零散笔记 0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7 1、js中函数就是对象对象就是函数。...arguments表示函数参数集合 2、js中方法直接调用为函数,用new调用为对象。...JavaScript中没有类语法,是用函数闭包模拟出来 3、js中给对象动态添加属性示例: //定义一个函数 function Person(){ } //1、直接调用函数名,就只是单纯表示调用函数...Person(); //2、是用new,表示创建了一个对象js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "大锤"; //...给per对象动态添加方法sayHi //调用per对象属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi(); 4、js中支持this关键字

7.4K61

JS面向对象详解

面向对象面向过程 面向对象面向过程是两种不同编程思想,刚开始接触编程时候,我们大都是从面向过程起步,毕竟像我一样,大家接触第一门计算机语言大概率都是C语言,C语言就是一门典型面向过程计算机语言...面向过程主要是以动词为主,解决问题方式是按照顺序一步一步调用不同函数。面向对象是以名词为主,将问题抽象出具体对象,而这个对象有自己属性和方法,在解决问题时候,是将不同对象组合在一起使用。...冰箱.关门() 从这个例子可以看出,面向对象是以主谓为主,将主谓堪称一个一个对象,然后对象有自己属性和方法。面向对象是以功能来划分问题,而不是步骤。...功能上统一保证了面向对象设计可扩展性,解决了代码重用性问题。这也是在漫长程序设计发展过程中得到验证结果,面向对象编程思想较之于面向过程较好一点。...在ES5中,并没有class概念,但是由于js函数级作用域(函数内部变量函数外访问不到)。所以我们可以模拟class。在es5中,类其实就是保存了一个函数变量,这个函数有自己属性和方法。

2.3K31

JS高级——面向对象

面向对象程序开发思想中,每一个对象都是功能中心,具有明确分工。 面向对象编程具有灵活、代码可复用、容易维护和开发优点,更适合多人合作大型软件项目。...面向对象特性: 封装性 继承性 多态性 面向过程和面向对象对比 面向过程 面向对象 优点:性能比面向对象高,适合跟硬件联系很紧密东西,例如单片机就采用面向过程编程。...用面向过程方法写出来程序是一份蛋炒饭,而面向对象写出来程序是一份盖浇饭。...ES6中类和对象 面向对象 面向对象更贴近我们实际生活,可以使用面向对象描述现实世界事物,但是事物为具体事物和抽象事物 面向对象思维特点: 抽取(抽象)对象公用属性和行为组织(封装)成一个类...面向对象编程我们考虑是有那些对象,按照面向对象思维特点,不断创建对象,使用对象,指挥对象做事情。 对象 现实生活中,万物皆对象对象是一个具体事物,看得见摸得着事物。

2.2K30

JS面向对象笔记 转

一、js零散笔记 0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7 1、js中函数就是对象对象就是函数。...arguments表示函数参数集合 2、js中方法直接调用为函数,用new调用为对象。...JavaScript中没有类语法,是用函数闭包模拟出来 3、js中给对象动态添加属性示例: //定义一个函数 function Person(){ } //1、直接调用函数名,就只是单纯表示调用函数...Person(); //2、是用new,表示创建了一个对象js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "大锤"; //...给per对象动态添加方法sayHi //调用per对象属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi(); 4、js中支持this关键字

13.8K21

JS面向对象笔记二

*/ 如果调用构造函数时候,忘记使用new关键字,则构造函数里面的this为全局对象window,属性也会变成全局属性, 则被构造函数赋值变量不再是一个对象,而是一个未定义变量,js不允许给undefined.../* 打印日志: 大锤@sina.com: aaa 大锤@sina.com: bbb 大锤@sina.com: 333 */ 4、关于js提供call、apply、bind方法对this固定和切换用法...isTrue14 + " ," + isTrue15 + ", " + isTrue16); //true, true, true, true, true, true ,true, true 1、在JS...四、对象Copy, 和面向对象三大特性模拟(继承,多态,封装) 1、拷贝对象,需要满足以下两个条件: 拷贝后对象,与原对象具有同样prototype原型对象。...面向对象之继承特性体现,让一个构造函数继承另外一个构造函数:   1)、在子类构造函数中,调用父类构造函数   2)、让子类原型指向父类原型,这样子类原型继承了父类原型   多态模拟则是重写子构造函数继承自父构造函数方法

5.6K70

JS高级」面向对象编程

1.面向过程与面向对象 1.1面向过程 面向过程就是分析出解决问题所需要步骤,然后用函数把这些步骤一步一步实现,使用时候再一个一个依次调用就可以了。...1.2面向对象 面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。...1.3面向过程与面向对象对比 差异 面向过程 面向对象 优点 性能比面向对象高,适合跟硬件联系很紧密东西,例如单片机就采用面向过程编程。...易维护、易复用、易扩展,由于面向对象有封装、继承、多态性特性,可以设计出低耦合系统,使系统 更加灵活、更加易于维护 缺点 不易维护、不易复用、不易扩展 性能比面向过程低 2.对象与类 2.1对象.../tab.js"> 项目代码JS部分: var thisReplace; // 定义一个全局Bian量用来传递对象函数中this class Tab

1.8K10

js面向对象思想精要

鉴别原始类型 使用typeof方法, eg: console.log(10);//number; 特例:鉴别null时返回是object; 2.引用类型(js对象) 2.1创建 var person...对象在不使用时将其解除,最好办法是在对象变量置为null, 让垃圾收集器对内存释放; 2.3添加和删除属性 2.4引用类型鉴别 2.4.1函数使用typeof鉴别时返回事function,...4.1 this对象 4.2 改变this 方法一 call():第一个参数表示this指向,其后参数代表需要传入函数参数 eg: function sayName(name)...(person) 使用该方法不能添加,不能删除和改变,也不能写入数据,相当于一个只读封印对象,可以使用Object.isFrozen(person)检测是否被冻结, 第四章 构造函数和原型对象 一.构造函数...几乎所有的函数都具有一个prototype属性,跟踪其原型对象,该属性是一个指向该实例使用原型对象指针, 第五章 继承 第六章 对象模式

1.2K10

JS面向对象程序设计

http://www.cnblogs.com/gaojun/p/3386552.html    面向对象语言有一个标志,即拥有类概念,抽象实例对象公共属性与方法,基于类可以创建任意多个实例对象,...但JS对象与纯面向对象语言中对象是不同,ECMA标准定义JS对象:无序属性集合,其属性可以包含基本值、对象或者函数。...可以简单理解为JS对象是一组无序值,其中属性或方法都有一个名字,根据这个名字可以访问相映射值(值可以是基本值/对象/方法)。  ...      ECMA-262第5版定义了JS对象属性中特征(用于JS引擎,外部无法直接访问)。...5、动态原型模式      组合模式中实例属性与共享方法(由原型定义)是分离,这与纯面向对象语言不太一致;动态原型模式将所有构造信息都封装在构造函数中,又保持了组合优点。

1.3K10

JS面向对象设计原则

本篇来讨论为什么程序开发中推荐使用面向对象编程。 程序执行有几种套路:顺序执行、判断执行和循环执行。我认为程序其实就是一个个或好或差单元组成大单元,计算机对这个大单元进行执行计算过程。...这个合理优化过程,在程序世界中,就需要通过面向对象方法来把一个个小单元进行合理结构化。 所以,程序执行不管使用何种套路,都应具有良好结构化特性。面向对象其实就是把数据进行结构化。...在面向对象开发中,想要做到简单抽象并不容易,拆分出来更细粒度原则如下: 五大设计原则: S:单一职责原则 一个程序只做好一件事 如果功能过于复杂就拆分开,每个部分保持独立 O:开放封闭原则 对扩展开放...保持接口单一独立,避免出现“胖接口” JS中没有接口,使用较少 类似于单一接口,这里更关注接口 D:依赖倒置原则 面向接口编程,依赖于抽象而不依赖于具体 使用方只关注接口而不关注具体类实现 JS中使用较少...()扩展即可,因为then()返回一个新promise对象,所以可以链式调用,并且catch()方法也返回一个新promise对象,所以后面也可以接新then()

1.1K20

面向对象软件开发

所以软件开发其实一整套规范,我们所学只是其中一小部分,一个完整开发过程,需要明确每个阶段任务,在保证一个阶段正确前提下再进行下一个阶段工作,称之为软件工程     面向对象软件工程包括下面几个部...由于使用了面向对象方法开发程序,使用程序维护比较容易。     因为对象封装性,修改一个对象对其他对象影响很小,利用面向对象方法维护程序,大大提高了软件维护效率,可扩展性高。    ...程序编写者只需要根据OOd提出思路,用面向对象语言编写出程序既可。     在一个大型软件开发过程中,OOP只是很小一个部分。    ...对于全栈开发你来说,这五个阶段都有了,对于简单问题,不必严格按照这个5个阶段进行,往往由程序设计者按照面向对象方法进行程序设计,包括类设计和程序设计 回到顶部 九 小白容易犯错误 1.面向对象程序设计看起来高大上...你见过哪家公司要开发一个软件,上来就开始写,肯定是频繁开会讨论计划,请看第八节 4.既然这么麻烦,那么我彻底解脱了,我们不要用面向对象编程了,你啊,你有大才,你能成事啊,傻叉。

72520

前端基础-JS面向对象编程

第1章 JS面向对象编程 ? 学习目标 初步理解对象是什么及面向对象编程概念 能够自己创建一个对象 1.1 面向对象介绍 什么是对象?...对象每个属性或方法都有一个名字,而每个名字都 映射到一个值。 1.2 面向对象编程 面向过程:以前写js代码,都是面向过程。...面向对象不是新东西,它只是过程式代码一种高度封装,目的在于提高代码开发效率和可维护性。 ?...面向对象编程 —— Object Oriented Programming,简称 OOP ,是一种编程开发思想。...因此,面向对象编程具有灵活、代码可复用、高度模块化等特点,容易维护和开发,比起由一系列函数或指令组成传统过程式编程(procedural programming),更适合多人合作大型软件项目。

1.6K10
领券