好程序员前端教程面对对象与原型原型链

好程序员前端教程面对对象与原型原型链
一、面向对象:
面向对象是一种程序开发的方法,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的灵活性、重用性和扩展性。对象是把数据及对数据的操作方法放在一起,作为一个相互依存的整体。再说一下类与对象,类描述了一组有相同特性和相同行为的对象,具有相同属性和相同方法的对象的抽象就是类。即对象的抽象是类,类的实例是对象。在面向对象的编程中,把用类创建对象的过程称为实例化。
面向过程与面向对象的区别在于面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题。通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。面向对象是一种抽象度更高的编程方法。它的目标是使模块的抽象度更高,目的是可复用。面向对象三大特性:封装,继承,多态。
面向过程可以说是从细节方面思考问题。面向对象可以说是从宏观方面思考问题
对象的创建方式有对象字面量,工厂方式,原型方式,构造函数,混合模式。
原型,原型链:
我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法。那么,prototype就是通过调用构造函数而创建的那个对象实例的原型对象。使用原型的好处是可以让对象实例共享它所包含的属性和方法。也就是说,不必在构造函数中添加定义对象信息,而是可以直接将这些信息添加到原型中。使用构造函数的主要问题就是每个方法都要在每个实例中创建一遍。在JavaScript中,一共有两种类型的值,原始值和对象值。每个对象都有一个内部属性 prototype ,我们通常称之为原型。原型的值可以是一个对象,也可以是null。如果它的值是一个对象,则这个对象也一定有自己的原型。这样就形成了一条线性的链,我们称之为原型链。
简单的说就是在JavaScript 中,每当定义一个对象(函数)时候,对象中都会包含一些预定义的属性。其中函数对象的一个属性就是原型对象 prototype。JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做proto的内置属性,用于指向创建它的函数对象的原型对象prototype,我们把这个有proto串起来的直到Object.prototype.proto为null的链叫做原型链。

原文地址:https://blog.51cto.com/14249561/2367093

时间: 2024-10-06 21:11:53

好程序员前端教程面对对象与原型原型链的相关文章

好程序员前端教程-关于浏览器的兼容问题

好程序员前端教程-关于浏览器的兼容问题常见浏览器兼容问题:1.li在IE中底部3像素的BUG.解决方案:在< li>上加float:left:即可解决 IE6中奇数宽高的BUG.解决方案:就是将外部相对定位的div宽度改成偶数.高度也是一样的. IE6文字溢出BUG.引发这种BUG有以下几个条件:1)是注释引起的,删除所有注释即可.2)hidden的input直接放在form下.3)display为none的div也有可能引发此bug.4)可以通过外面再包一次DIV解决.由注释造成文字溢出,属

好程序员前端教程-javascript的面向对象

好程序员前端教程-javascript的面向对象一.什么是面向对象?1.面向对象就是把构成问题是无分解成多个对象,建立对象不是为了完成某个步骤,而是描述某个事物在这个解决问题的步骤中的行为.2.面向对象是一种思维方法.3·面向对象是一种编程方法.4·面向对象并不只针对某一种编程语言.二.面向对象和面向过程的区别和联系?1.面向过程侧重整个问题的解决步骤,着眼局部或者具体.2·面向对象侧重具体的功能,让某个对象具有这样的功能,更侧重整体.面向过程的优点:1.流程化使得编程任务明确,在开发之前基本考

好程序员前端教程-讲给小白:你不知道的HTML5

好程序员前端教程-讲给小白:你不知道的HTML5一.HTML5概念HTML5并不仅仅只是做为HTML标记语言的一个最新版本,更重要的是它制定了Web应用开发的一系列标准,成为第一个将Web做为应用开发平台的HTML语言.HTML5定义了一系列新元素,如新语义标签.智能表单.多媒体标签等,可以帮助开发者创建富互联网应用,同时有令人眼花缭乱的css 3,还提供了一些Javascript API,如地理定位.重力感应.硬件访问等,可以在浏览器内实现类原生应用,制作webApp,甚至结合Canvas我们

好程序员Java教程解读什么是swing

好程序员Java教程解读什么是swing,swing是java GUI应用程序,也就是java做的桌面应用.运行swing程序要求用户电脑上有java环境,这一点不太现实也不方便.现在的java主要以web方向为主,做移动应用和网站开发,分布式.多线程.高并发等都是java程序员发展的方向. 虽然企业开发中用到的不多,事实上在我十几年的开发生涯中没有用到过,我的朋友也没有做swing的.但也不能说学习它就没有用. 比如swing中的控件,如表格.树.面板.菜单等控件,各种事件如键盘.鼠标事件.结

好程序员前端学习路线分享模拟JavaScript中面向对象技术

好程序员前端学习路线分享模拟JavaScript中面向对象技术,在C#和Java语言中,面向对象是以类的方式实现的,特别是继承这个特性,类的方式继承表现出了强大的功能,而且也易于学习.JavaScript不是纯的面向对象的语言,而是基于对象的语言,对象的继承是以原型函数的形式继承的,很多初学者刚开始接触的时候不太理解,但是JavaScript这种以原型函数的形式实现面向对象技术,不仅是可行的,而且还为面向对象技术提供了动态继承的功能,本文主要讨论了JavaScript的面向对象技术.?一.原型对

好程序员Java教程分享MyBatis Plus介绍

好程序员Java教程分享MyBatis Plus介绍:1.MyBatis Plus 介绍 MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. MyBatis Plus 的核心功能有:支持通用的 CRUD.代码生成器与条件构造器. 通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件 条件构造器:通过 Enti

好程序员Java教程Java动态代理机制详解

好程序员Java教程Java动态代理机制详解:在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的.首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的: InvocationHandler: 1InvocationHandler is the interface implemented by the invocation handle

好程序员Java教程系列之异常定义

好程序员Java教程分享Java系列之异常定义 异常定义 异常:就是程序在运行的过程中遇到的种种不正常的情况. 特点:如果一个程序在运行中遇到了一个未经处理的异常,则这个异常会终止程序的运行. ? 但是如果程序出现的异常被处理了,此时程序不会被终止.所以我们需要知道怎么去处理异常. 其实在Java中,异常也是一个类. 类的体系: Throwable: 是所有的异常的根类 Error: 发生在编译器级别的,我们程序无法处理的错误. Exception: 我们可以去处理的异常. RuntimeExc

【系列】后端程序员前端之路(2016/3/24更新)

后端程序员前端之路01 后端程序员前端之路02--CSS选择器详解 后端程序员前端之路03--HTML语义化 后端程序员前端之路04--html元素分类 后端程序员前端之路05--盒子模型详解 后端程序员前端之路06--布局模型,颜色值,长度值 --不断更新中,如果有帮助到你,请点“推荐”.你的支持,是我坚持的动力O(∩_∩)O谢谢~