面向对象编程:   面向:以什么为主,基于什么模式 对象:由键值对组成,可以用来描述事物,存储数据的一种数据格式 编程:使用代码解决需求   面向过程编程:         按照我们分析好的步骤,按步骤解决问题         优点:性能比面向对象高,适合跟硬件联系很紧密的东西         缺点:没有面向对象那么容易维护,复用,扩展   面向对象编程:         把事务分解成一个个对象,然后由对象之间分工与合作,分工明确,每一个对象都是功能中心         面向对象特性:封装性.继…
我们先聊聊Js的历史,1994年Netscape公司发布了Navigator浏览器0.9班.这是历史上第一个比较成熟的网络浏览器.轰动一时.但是,这个版本的浏览器只能用来浏览,不具备交互功能,最主要的就是表单验证了,无法做到表单验证,只能由服务器来判断 这样做就太浪费资源了 所以他们需要一种运行在浏览器的脚本语言去和网页互动.工程师Brendan Eich负责开发这种新语言,他觉得没必要设计的很复杂,只要能够完成一些简单操作就够了,比如判断表单验证 1994年正是面向对象编程 C++ Java…
接上一篇 面向对象编程的理解? 答:面向对象编程,就是将你的需求抽象成一个对象,然后针对这个对象分析其特征(属性)与动作(方法).这个对象我们称之为类.面向对象编程思想其中一个特点就是封装,就是把你需要的功能放在一个对象里. 一.封装 1.1创建一个类 在javascript中创建一个类,很容易, 方法一:首先,声明一个函数保存在变量里,然后,在这个函数内部通过this(函数内部自带的一个变量,用于指向当前这个对象)变量添加属性或者方法,来实现对类的添加属性或方法. 举个例子: var Book…
介绍Javascript中面向对象编程思想之前,需要对以下几个概念有了解: 1. 浅拷贝和深拷贝:程序在运行过程中使用的变量有在栈上的变量和在堆上的变量,在对象或者变量的赋值操作过程中,大多数情况先是复制栈上的信息,这样就会出现以下情况,如果变量是对象,那么这一操作,复制的只是真正对象所在 的堆内存空间的起始地址,这就是所谓的浅拷贝,如果是深拷贝,则是在内存堆空间中重新分配一个内存,并把分配的内存的起始地址复制过去. 2. 引用类型数据和值类型数据:谈到引用类型数据和值类型数据,自然而然的联想到…
面试的时候,总会被问到,你对javascript面向对象的理解? 面向对象编程(object-oriented programming,OOP)是一种程序设计范型.它讲对象作为程序的设计基本单元,讲程序和数据封装其中,以提高程序的重用性.灵活性和扩展性. 一.举个例子 有这么一个需求:做一个验证表单功能,仅需要验证用户名,邮箱,密码等 觉得在项目产品开发中,自己是这么写的 function checkName(){ //验证姓名 } function checkEmail(){ //验证邮箱 }…
虽然经常说是做前端开发的,但常常使用的技术反而是JQuery比较多一点.在JavaScript的使用上相对而言少些.尤其是在创建对象使用原型链继承上面,在项目开发中很少用到.所以今天做个demo练习一下,以后忘记了也可以照搬一下. 说明一下: 1. Demo中使用的是构造函数+原型模式创建的对象.构造函数中存储对象实例使用的属性,原型模式增加实例使用的方法. 2. Demo中的继承分为两个方面.一个是属性继承,使用的是借用构造函数模式 call()方法.另一个是方法继承,这个就是使用原型方式继承…
1 对象:JavaScript 中的所有事物都是对象:字符串.数值.数组.函数. 对象与程序的关系: 程序 = 基于对象操作的算法 + 以对象为最小单位的数据结构 此外: 面向对象的本质就是让对象有多态性,把不同对象以同一特性来归组,统一处理.至于所谓继承.虚表.等等概念,只是实现的细节. 2 js中的对象(Object) 2-1创建空白对象 var obj = new Object(); 解释:new Object(): new后面调用函数,我们称为构造函数.Object() 我们把他视为一个…
组合式继承:将类式继承同构造函数继承组合使用,但是存在一个问题,子类不是父类的实例,而子类的原型式父类的实例,所以才有了寄生组合式继承. 意思就是说,寄生就是寄生式继承,寄生式继承就是依托于原型继承,原型继承又与类式继承差不多,所以另外一种继承模式应该是构造函数继承.当然子类不是父类的实例的问题是由于类式继承引起的. 说道这,我不得不说一下,道格拉斯大哥对寄生式继承的改造 function inheritPrototype(subClass,superClass){ //复制一份父类的原型副本保…
使用JSON 来定义一个对象: <script type="text/javascript">var xiaoming = { name : 'xiaoming', age : 18, say : function(){ console.log('my name is '+this.name); }}xiaoming.say();xiaoming.name = 'li xiao ming';xiaoming.say();</script>  …
(个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不一定需要面向对象编程,有时候,我们需要的只是一个实例化了的对象,而不是一个创建对象的类. 偏要这样做的话,也行,请看下文.另外请勿与传统面向对象编程做对比,这没有可比性. 对于javascript来说,所有的变量都可以被称为对象.例如: var a = 'hello world'; console.…