`
hezhaomeng
  • 浏览: 9359 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

关于就是的面向对象的一些认识

    博客分类:
  • web
 
阅读更多

用javascript的事件也不短了,,,但总是停留在一些基础简单的应用之中,对于js里面的高级特性却知之甚少,虽然一直都知道js的面向对象(当然也有叫基于对象的),那说明里面对于对象的操作那是重头戏,但我却对这样的特性可以说的一直很迷茫的状态,,,别看我是学着 用着java编程,,,但是到js这里,,好像都不起作用了。。别的不多说,,,下面开始js 的面向对象的一些看法 都是从学习中自己的认识,,,有错误之处敬请指正,,,

js的面向对象 基本上就是 对函数 function的增加了一层华丽的外衣,,,在我们根深蒂固的方法学说里,根本不会把这样的情况和对象有什么联系的,,,但在就是里,,,它有着深藏不露的本事,我们经常都是创建某某方法然后简单的调用之后 ,,,好像就没有什么下一步的动作,,,也是基于问题的复杂程度而言,我也没有系统的使用过js的这些特性,但是既然学习了js了,,那么就要熟悉它的每一个特性,,,感受它的伟大,,,更重要的是给我们开发带来便利,。,。这就是所用程序员们追求的终极目标啊,,,

对于js面向对象,,,我想从 面向对象的基本特性 来说  封装 继承  多态,,,那么对于类的概念 在js中就是没有的,,,这也可以说是一个优点,,,可以有更好的动态特性,,,,它的一般形式

function func(){ } 这是我,们在熟悉不过的了。。。这个 可以说 函数,,, 我们可以叫做构造器。。。

(哈哈 我怎么想起了c++中的构造器了呢,,,飘过)在这个函数的外面我们看不出什么。。。又给我们说的面向对象有什么关系。。。。就继承来说,,,通常有父类 子类,,,这样的形式,,,在js是如何去表现了。。。

首先要明白 原型 和构造器的概念,,,因为它们才是首先继承的关键因素,,,

 

其实说 原型,,,貌似没有用到过 好像不曾存在过一样,,,对于一般的操作 原型的存在就像是多余的一样,,,因为根本用不到它,,,但是原型的力量是不可小觑的,,,,

函数的原型是什么呢,,,我们可以通过 alert(func.proptotype)方式得到,,,对 是object 它又有什么用呢,,,是的 就现在而言 看似没有什么实质性的用处,,,慢慢看,,,

我们继续看它的构造器是什么呢 alert(func.prototype.constructor)    是function func(){}  函数原型的构造器指向的是函数本身。。。 有点意思呢,,,

那么跟我们的继承有什么关系呢。。。下面继续。。。

函数原型是一个对象,,,这个对象是不是不唯一的,,,我们看那弹出的原型是一个object 那么只要是object类型的 那就可以是一个原型了,,,那么我可以这样

function  father(){}

function son(){}

var f=new father();

son.prototype=f;

这样不就可以了么、、、

恩 想法很好 我也是这样的想的 。。。但是这样做是不对的。。。

这样的话 可以实现 把son的原型修改为father  但同时 我们可以发现一点

贴代码 自己验证下

紧跟上面的

var ff=new father();

var ss=new son();

alert(ff.constructor===ss.constructor)//true

这样就会出现重大问题  这个原型链断开了,,

首先我们在实现原型继承的同时 也要保持本身的构造器能够继续存在,,,

然后在执行了之后。。。。本身的构造器被新的原型所替代,,,

那样这是我们不允许出现的情况,,,

我们需要的是 在不影响自身构造器的情况下进行原型的继承动作针对上面的代码我们要做一下改动

 

function father(){this.constructor=arguments,callee;}

function son(){this.constructor=arguments.callee;}

var f=new father();

son.prototype=f;

 

var ff=new father();

var ss=new son();

alert(ff.constructor==ss.constructor)//false

看看结果显示了什么。。。恩 看似很好的一个结果

这样我们既解决了原型继承 。。。还解决了构造器的问题。。。

js里面的知识真是太多了。。。。真的是需要静下心来慢慢的去认识 学习 在认识 在学习的过程

 

 

 

分享到:
评论

相关推荐

    面向对象编程思想

    面向对象编程思想 面向对象编程思想是当前计算机界关心的重点,它是 90 年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用...

    面向对象的软件构造.pdf

    在《面向对象的软件构造》这篇文档中,作者首先强调了面向对象技术是四种思想的结合:一种结构化方法、一种可靠性纪律、一种认识论原则以及一种分类技术。这四个核心概念为理解面向对象编程提供了基础。 1. **结构...

    面向对象编程——C#

    深入浅出的指导面向对象——C#的入门,各种案例强化对C#的认识。

    写给大家看的面向对象编程书(第3版)代码

    这些代码实例将帮助读者通过实践来理解和巩固面向对象编程的概念,对于每个语言如何实现OOP特性有直观的认识。无论你是初学者还是有经验的开发者,这些实例都将丰富你的编程技能,并加深对面向对象编程的理解。

    面向对象技术UML教程

    UML结合了Grady Booch、James Rumbaugh和Ivar Jacobson等多位面向对象方法学专家的贡献,融合了各自方法的精华,并不断吸收其他面向对象方法的优点,以广泛的社区反馈为基础经过多轮修订后发展起来。由于其定义明确...

    《面向对象原理与语言》课程实验C++代码

    《面向对象原理与语言》课程实验大纲 适用对象: 计算机科学与技术专业 先修课程: C语言程序设计、数据结构 后续课程: 算法设计与分析、面向对象技术 开课单位:信息工程学院计算机科学与技术系 实验题目 实验一...

    JAVA编程基础-05面向对象基础.pdf

    面向对象编程的思想强调直接以问题域中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。 面向对象编程与面向过程编程有本质的不同。面向...

    Java面向对象的思维导图,对于面向对象更深刻的认识

    Java面向对象的思维导图,对于面向对象更深刻的认识

    面向对象语言演变的哲学辨识

    ### 面向对象语言演变的哲学辨识 #### 摘要与背景介绍 本文旨在探讨面向对象(OO)编程语言的发展历程及其背后的哲学思考。面向对象编程作为一种设计理念,经历了从具体到抽象,再到回归具体的演变过程。随着软件...

    javascript面向对象编程.pdf

    总而言之,学习现代JavaScript面向对象编程,有助于开发者在认识这门语言演化的基础上,运用面向对象的设计和编程模式来构建更加健壮和可维护的JavaScript应用程序。同时,测试和调试是保证代码质量不可或缺的环节,...

    c++面向对象程序设计(第二版)课后答案

    "面向对象程序设计概述" 本节课程将介绍面向对象程序设计的基本概念和特征。面向对象程序设计是一种新型的程序设计范型,其主要特征是程序 = 对象 + 消息。对象是面向对象程序的基本元素,程序中的一切操作都是通过...

    原型法和面向对象的分析与设计方

    面向对象技术是一种按照人们对现实世界习惯的认识论和思维方式来研究和模拟客观世界的方法学。它将现实世界中的任何事物都视为“对象”,将客观世界看成是由许多不同种类的对象构成的,每一个对象都有自己的内部状态...

    c#面向对象日历源码

    在C#编程中,面向对象(Object-...通过对这些知识点的理解,你不仅可以学习到如何使用C#实现一个面向对象的日历系统,还能加深对面向对象编程概念的认识,提升编程技能。这个项目是学习和实践C# OOP理念的理想示例。

    Java面向对象程序设计讲课提纲

    Java面向对象程序设计是一门深度探讨如何使用Java语言进行面向对象编程的课程。面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中广泛采用的方法,它基于类和对象的概念,强调数据封装、继承和多态...

    Java面向对象基础源代码教程

    Java是一种广泛使用的编程语言,以其面向对象的特性而著名。面向对象编程(Object-Oriented ...通过实际动手编写和分析代码,你会对面向对象设计模式、异常处理、集合框架等有更深刻的认识,进一步提升编程能力。

Global site tag (gtag.js) - Google Analytics