初识javascriptoop(js面向对象)

会飞的豆子      2022-02-11     446

关键词:

初识JavaScriptOOP(js面向对象)

Javascript是一种基于对象(object-based)的语言,

你遇到的所有东西几乎都是对象。但是,它又不是一种真正的面向对象编程(OOP)语言,因为它的语法中没有class(类)。

一、 生成实例对象的原始模式

假定我们把花看成一个对象,它有"名字"和"产地"两个属性。

创建一个对象有两种方法:

01.
<script type="text/javascript"> var flower=new Object(); flower .name="牡丹"; flower.area="洛阳"; flower.showName=function () { alert(flower.name); }; </script>

02.
var flower={
name:"牡丹",
area:"洛阳花会",
flower:showName=function () {
alert(flower.name);
}
};
//调度函数
flower.showName();

</script> 

二、 原始模式的改进

我们可以写一个函数,解决代码重复的问题。

<script type="text/javascript">
       function Flower(name,area){
          this.name=name;
          this.area=area;
          this.showName=function(){
        alter(this.name);
     };
; }
//创建一个flower对象
var f1=new Flower("红牡丹","洛阳白马寺");
f1.showName();
var f2=new Flower("红牡丹","洛阳白马寺");
f2.showName();
</script>

这种方法的问题依然是,f1和f2之间没有内在的联系,不能反映出它们是同一个原型对象的实例。

用一个方法将他们的共同方法提出:

<script type="text/javascript">
	   function Flower(name,area){
	      this.name=name;
	      this.area=area;
	      this.showName=myName;
	   }
	   //全局对象
	   function myName(){
	   		alter(this.name);
	   };
	   //创建一个flower对象
	   var f1=new Flower("红牡丹","洛阳白马寺");
	   f1.showName();
	   var f2=new Flower("红牡丹","洛阳白马寺");
	   f2.showName();
	</script>

但是,这种方法对服务器的负担较重

<script type="text/javascript">
    function Flower(){
        //空模板
    }
    Flower.prototype.name="牡丹花";
    Flower.prototype.area="洛阳白马寺、龙门石窟";
    
    Flower.prototype.showName=function(){
        alert(this.name);
    };
    var flag=Flower.prototype.constructor==Flower;
    alert(flag);
    var flower1=new Flower();
    
    flower1.showName();
    if(flower._proto_==Flower.prototype){
        alert("==========");
    }
    </script>

 

还有一种

<script type="text/javascript">
        function Humens(){
            return this.foot;
        }
        //关于Humens的一个原型上的方法,获取到foot
        Humens.prototype.getFoot=function(){
            return this.foot;
        };
        //写一个子类
        function Man(){
            this.head=1;
        }
        Man.prototype=new Humens();
        Man.prototype.getHead=function(){
            return this.head;
        };
        
        var man1=new Man();
        alert(man1,foot);
    </script>

 

接下来模拟一下java中的类和对象

<script type="text/javascript">
        function Humens(){
            this.sport=["basketball","football","pingpong-ball"];
        }
        
        function Man(){
            Humens.call(this);
        }
        Man.prototype=new Humens();
        var man1=new Man();
        man1.sport.push("baseball");
        alert(man1.sport);
        
        var man2=new Man();
        alert(man2.sport);
    </script>

 





















js高级进阶javascript初识面向对象(代码片段)

CSDN话题挑战赛第2期参赛话题:面试宝典目录前言一,面向对象介绍二,创建生成实例三,继承四,super关键字写在最后前言本篇主要讲解了什么是面向对象,如何创建使用类,super关键字的使用以及注... 查看详情

javascript之基础-15javascriptoop(概述对象模板)

一、JavaScriptOOP概述OOP概述 -面向对象的语言 -封装     - 把相关的信息(无论数据或方法)存储在对象中 -继承   -从其它对象获得属性和方法 -多态   -能以多种不同的形式... 查看详情

javascript对象及初识面向对象

JavaScript对象及初识面向对象:   查看详情

oc-初识面向对象

面向对象和面向过程思想OC是面向对象的,C是面向过程的。面向对象和面向过程只是解决问题的两种不同思想面向对象和面向过程的区别以用电脑听歌为例子面向过程打开电脑 播放电脑中的歌曲 关闭电脑 面向对象(... 查看详情

第一小节初识面向对象(代码片段)

阅读目录楔子面向过程vs面向对象初识面向对象  类的相关知识  对象的相关知识  对象之间的交互  类命名空间与对象、实例的命名空间  类的组合用法  初识面向对象小结面向对象的三大特性  继承  多态... 查看详情

面向对象---初识对象

<!doctypehtml><htmllang="en"><head> <metacharset="UTF-8"> <title>面向对象---初识对象</title> <scripttype="text/javascript"> /* *表达一个人的完整信息 */ /*第一种,三个变量之间没有必然的联系----- 查看详情

初识面向对象

一、面向对象&面向过程1、面向过程(流水线式思维):优点:程序复杂度较低,依据执行步骤顺序编写代码即可缺点:代码复用性差,前后逻辑耦合度要高应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git... 查看详情

面向对象思想初识

面向对象思想概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的... 查看详情

面向对象——初识对象

一、类的相关知识1)初识类声明deffunctionName(args):‘函数文档字符串‘函数体‘‘‘class类名:‘类的文档字符串‘类体‘‘‘#我们创建一个类classData:pass声明类classPerson:#定义一个人类role=‘person‘#人的角色属性都是人defwalk(self):#... 查看详情

java基础——初识面向对象

 面向对象面向过程&面向对象面向过程思想步骤请简单:第一步做什么,第一步做什么面向过程适合处理一些较为简单的东西面向对象思想物以类聚,分类的思维模式,思考的问题首先会解决问题需要哪些分裂,然后对这... 查看详情

面向对象初识

面向过程编程--函数--实现人狗大战defperson(*args):defattack(dog):print(‘%s打了%s‘%(dic[‘name‘],dog[‘name‘]))dic={‘name‘:args[0],‘sex‘:args[1],‘aggr‘:args[2],‘blood‘:args[3],‘attack‘:attack}#attack方法----放在字典里面returndic 查看详情

面向对象思想初识概述

概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。... 查看详情

javascript对象及初识面向对象

在JavaScript中,对象是拥有属性和方法的数据,属性是与对象相关的值,方法是能够在对象上执行的动作。JavaScript是通过一种叫做原型的方式来实现面向对象编程的。(面向对象仅仅是一个概念或者编程思想,它不依赖于某个语... 查看详情

java学习·初识面向对象基础一

面向对象基础1.1面向过程与面向对象的区别面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计。但二者并不是对立的,在解决复杂问题... 查看详情

初识面向对象(代码片段)

        面向对象VS函数式编程VS面向对象      面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考... 查看详情

初识面向对象

属性引用:类名和属性classPerson:  定义一个人类  role=‘person‘     人的角色属性  defwalk(self):    走路的一个方法    print(‘personiswalking‘)print(Person.role) 查看人的role属性print(Person.walk) ... 查看详情

初识面向对象

面向对象编程是一种思想对象就是具体的拥有准确属性值的一些变量类:一类具有相同属性和方法的事物 类的定义 class关键字类名的首字母大写类中直接定义属性:静态属性(变量) 和动态属性(函数)类名的两个作用:属性... 查看详情

day7初识面向对象,面向对象之继承与派生

一、面向对象引言 一、面向对象的程序设计的由来  详述见:http://www.cnblogs.com/linhaifeng/articles/6428835.html  二、面向对象引子  写一个简单程序:人狗大战角色:人、狗人角色特性:攻击力、生命值、名字、等级... 查看详情