资讯专栏INFORMATION COLUMN

JavaScript面向对象编程——面向对象

SimonMa / 499人阅读

摘要:面向对象面向对象的概述面向对象是什么面向对象编程的全称是,简称。面向对象编程是用抽象方式创建基于现实世界模型的一种编程。面向对象编程可以看做是使用一系列对象相互协作的软件设计。面向对象编程的山歌主要的特征是封装继承多态。

面向对象 面向对象的概述 面向对象是什么

面向对象编程的全称是Object Oriented Programming,简称OOP。
面向对象编程是用抽象方式创建基于现实世界模型的一种编程。
面向对象编程可以看做是使用一系列对象相互协作的软件设计。面向对象程序设计的目的是在编程中促进更好的灵活性和可维护性。凭借其对模块化的重视,面向对象的代码开发更简单,更加容易理解。
面向对象编程的山歌主要的特征是:1.封装;2.继承;3.多态。
所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,提高复用率。
JavaScript是一种基于原型的面向对象语言,而不是基于类的。正式由于这一根本的区别,其如何创建对象的层级结构以及对象的属性与属性值是如何继承的并不是那么清晰。
基于原型语言(如JavaScript)并不存在这种区别:它只有对象。基于原型的语言具有所谓原型对象(prototypical object)的概念。原型对象可以作为一个模板,新对象可以从中获得原始的属性。任何对象都可以指定其自身的属性,既可以是创建时也可以在运行时创建。而且,任何对象都可以作为另一个对象的原型(prototype),从而允许后者共享前者的属性。

封装

所谓封装就是按照要求使用并得到对应的结果,而不需要知道其真实的执行原理是怎么样的。
封装主要用于阐述对象中所包含(或封装)的内容,他们通常由两部分组成:
1.相关数据(用于存储属性)
2.基于这些数据所能做的事情

继承

继承通过是指类与类之间的关系。如果两给类都有相同的属性或方法,那么可以让一个类继承于另一个类,这样就不需要再前者再次定义同样的属性或方法。
创建一个或多个类的专门版本类方式称为继承(JavaScript只支持单继承)。创建的专门版本的类通常叫做子类,另外的类通常叫做父类。
在JavaScript中,继承通过赋予子类一个父类的实例并专门化子类来实现。

多态

不同的对象可以定义具有相同名称的方法,方法是作用于所在的对象中。这种不同对象通过相同方法的调用实现各自行为的能力,被称之为多态。
例如A对象具有sayMe()方法,B对象继承于A对象,那么B对象中也具有sayMe(),当调用sayMe()方法时,并不知道该方法时A对象还是B对象。但这并不影响代码的真诚噶很难过工作。

构造函数 构造函数

构造函数又称为构造器或对象模板,是对象中的一个方法,在实例化时构造器被调用。在JavaScript中函数就可以作为构造器使用,因此不需要特别地定义一个构造器方法。

   创建构造函数(类的概念) - 用于创建对象(属性和方法)
    function 构造函数名称(){
        this.属性名 = 属性值;
        this.方法名 = function(){
            方法体
        }
    }
     this关键字 -> 指代利用当前构造函数创建的对象
 
function Hero(name){
    this.name = name;
    this.sayMe = function(){
        console.log("我是" + name);
    }
}
// 利用构造函数创建对象
var hero = new Hero("张无忌");
console.log(hero);

var obj = {
    name : "张无忌",
    sayMe : function(){
        console.log("我是张无忌");
    }
}

注意;
1.这里的Person()并不是作为函数,而是构造函数。
2.创建person对象需要使用new关键字。

构造函数的属性

0构造函数的属性实际上就是对象的变量。一个对象可以包含多个属性,定义构造函数的属性时使用this关键字。

// 1.函数;2.构造函数
function Hero(name){
    var v = 100;// 局部变量
    function n(){}// 内部函数
    this.name = name;// 属性
    this.sayMe = function(){// 属性
        console.log("我是"+name);
    }
}
// 1.函数调用
Hero();
// 2.构造函数使用
var hero = new Hero();

function fun(){
    var v = 100;// 局部变量
    // 方法
    this.get = function(){
        return v;
    }
    this.set = function(value){
        v = value;
    }
}
// 构造函数
var f = new fun();
console.log(f);

console.log(f.get());
f.set(200);
console.log(f.get());
构造函数的方法

构造函数的方法很想构造函数的属性,不同的方法是一个函数(或者象函数一样被定义)。
定义构造函数的方法是使用this关键字。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108156.html

相关文章

  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    Lyux 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    AaronYuan 评论0 收藏0
  • 再和“面向对象”谈恋爱 - 面向对象编程概念(三)

    摘要:说到底面向对象才是程序语言的根本。其实面向对象编程说的就是自定义对象。里并没有类的概念,所以严格上来讲这是个假的面向对象里的面向对象编程现在好了,终于听到别人鄙视我们了,给我们提供了类这个概念,其实是向传统语言更靠齐了。 通过前两篇文章,我们了解了对象的概念以及面向对象里的相关概念等知识,那前面说了对象分类里的前两种,这篇文章要详细去说第三种自定义对象,那真正的好戏这就来了! 面向对象...

    Cruise_Chan 评论0 收藏0
  • Javascript面向对象编程

    摘要:如果要理解基于原型实现面向对象的思想,那么理解中得三个重要概念构造函数原型原型链对帮助理解基于原型的面向对象思想就显得尤为重要。函数对象的原型在中,函数是一种特殊的对象,所有的函数都是构造函数的实例。 介绍 和java这种基于类(class-base)的面向对象的编程语言不同,javascript没有类这样的概念,但是javascript也是面向对象的语言,这种面向对象的方式成为 基...

    wanglu1209 评论0 收藏0

发表评论

0条评论

SimonMa

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<