资讯专栏INFORMATION COLUMN

JavaScript-中的面向对象

kohoh_ / 2367人阅读

摘要:博客地址地址今天开启我的专栏第一篇,接下来的日子,将和大家谈论一下一些事情,我慢慢发现你想实习面向对象编程,你得对原型链比较熟悉,对于指向也要比较熟悉,才能更好,将代码进行高度抽象起来面向对象概念面向对象和面向过程的区别面向过程我们在刚刚初

博客地址地址

今天开启我的专栏第一篇,接下来的日子,将和大家谈论一下JavaScript一些事情,

我慢慢发现你想实习面向对象编程,你得对原型链比较熟悉,对于this指向也要比较熟悉,才能更好,将代码进行高度抽象起来

1.0 面向对象概念 1.1 面向对象和面向过程的区别

面向过程:我们在刚刚初学JavaScript时候,我们要复用一个方法,就想这个方法写成一个函数,然后在需要用到的时候,进行调用

面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

知乎有一个关于面向对象去吧的回答

摇狗尾巴和狗摇尾巴的区别

面向过程的解决方法

在面向过程的编程方式中实现“把大象放冰箱”这个问题答案是耳熟能详的,一共分三步:

开门(冰箱);
装进(冰箱,大象);
关门(冰箱)。
面向对象的解决方法
冰箱.开门()
冰箱.装进(大象)
冰箱.关门()
2.0 实现面向对象方法

这里我们讨论几个主要的实现面向对象方法

2.1 工厂模式

何为工厂模式,

function Person(name,age,sex){
    var obj = {};
    obj.name = name;
    obj.age=age;
    obj.sex=sex;
    
    return obj;
}

let person1 = Person("夏夏",18,"男")
console.log(person1)

其实上面还有这么写

function Person(name,age,sex){
    var obj = {};
    obj.name = name;
    obj.age = age;
    obj.sex =sex;
}

let person2 = new Person("我是有new",18,"男")
2.2 构造函数

JavaScript中new可以让函数变的与众不同

function demo() {
    console.log(this);
}

demo();  // window
new demo();  // demo

关于构造函数,如果你暂时不能够理解new的具体实现,就先记住下面这几个结论吧。

与普通函数相比,构造函数并没有任何特别的地方,首字母大写只是我们约定的小规定,用于区分普通函数;

new关键字让构造函数具有了与普通函数不同的许多特点,而new的过程中,执行了如下过程:
声明一个中间对象;

将该中间对象的原型指向构造函数的原型;

将构造函数的this,指向该中间对象;

返回该中间对象,即返回实例对象。

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

转载请注明本文地址:https://www.ucloud.cn/yun/89581.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
  • 面向对象JavaScript

    摘要:是完全的面向对象语言,它们通过类的形式组织函数和变量,使之不能脱离对象存在。而在基于原型的面向对象方式中,对象则是依靠构造器利用原型构造出来的。 JavaScript 函数式脚本语言特性以及其看似随意的编写风格,导致长期以来人们对这一门语言的误解,即认为 JavaScript 不是一门面向对象的语言,或者只是部分具备一些面向对象的特征。本文将回归面向对象本意,从对语言感悟的角度阐述为什...

    novo 评论0 收藏0
  • JS对象(1)重新认识面向对象

    摘要:对象重新认识面向对象面向对象从设计模式上看,对象是计算机抽象现实世界的一种方式。除了字面式声明方式之外,允许通过构造器创建对象。每个构造器实际上是一个函数对象该函数对象含有一个属性用于实现基于原型的继承和共享属性。 title: JS对象(1)重新认识面向对象 date: 2016-10-05 tags: JavaScript 0x00 面向对象 从设计模式上看,对象是...

    superw 评论0 收藏0
  • javascript面向对象之“多态”

    摘要:之前,本质上不能算是一门面向对象的编程语言,因为它对于封装继承多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。所以在中出现了等关键字,解决了面向对象中出现了问题。 ES6之前,javascript本质上不能算是一门面向对象的编程语言,因为它对于封装、继承、多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以让我们以...

    JerryWangSAP 评论0 收藏0

发表评论

0条评论

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