美文网首页
面向对象(一)

面向对象(一)

作者: 懂会悟 | 来源:发表于2020-09-07 08:16 被阅读0次

1、传统的面向对象

  • 面向对象语言的一个标志就是类
  • 类是所有对象的统称,是更高意义上的一种抽象,对象是类的实例
  • 通过类可以创建任意多个具体的对象

2、JS的面向对象

  • 在ES6之前JS没有类的概念,因此通常称JS为基于对象
  • ECMA中对对象的定义:无序属性的集合,属性值可以是基本值、对象、函数

3、工厂模式

工厂模式是一种非常常见的设计模式, 这种模式抽象了创建具体对象的过程,即用函数来封装以特定接口创建对象。

// 创建工厂函数
function createPerson(name, age, height) {
  var o = new Object()
  o.name = name
  o.age = age
  o.height = height

  o.sayHello = function () {
    console.log("Hello, My name is " + this.name)
  }
  return o
}

// 创建两个对象
var person1 = createPerson("Tom", 28, 1.8)
var person2 = createPerson("Jury", 38, 1.6)

工厂模式无法解决对象类型的问题即创建的对象是Array还是Object,于是出现了构造函数模式


4、构造函数模式

构造函数可用来创建特定类型的对象,像Object和Array这样的原生构造函数,在运行时会自动出现在执行环境中,当然也可自定义构造函数。构造函数首字母一般大写,调用构造函数时需要使用new关键字

// 构造函数
function Person(name, age, height) {
  this.name = name
  this.age = age
  this.height = height
  this.sayHello = function () {
    console.log(this.name)
  }
}

// 使用构造函数创建对象
var person1 = new Person("Tom", 28, 1.8)
var person2 = new Person("Jury", 35, 1.9)

调用构造函数的执行过程

  • 创建一个新对象, 这个新的对象类型其实就是Person类型.
  • 将构造函数的作用域赋给新对象
  • 执行构造函数中的代码
  • 返回新对象, 但是是默认返回的, 不需要使用return语句

使用构造函数的主要问题,就是每个方法都要在每个实例上重新创建一遍,这是完全没有必要的因此出现了原型链


相关文章

  • 面向对象(未完成)

    面向对象 标签(空格分隔): 面向对象 第一章:面向对象(上) 什么叫面向对象 面向过程、面向对象、两者区别 构造...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • 面向对象基础

    一、面向对象概述 1、面向对象编程包括: OOA:面向对象分析OOD:面向对象的设计OOP:面向对象的编程实现 2...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • PHP全栈学习笔记8

    面向对象的基本概念,面向对象编程,oop,面向对象,面向对象的分析,面向对象的设计,面向对象的编程,什么是类。 类...

  • 面向对象:JavaScript

    面向对象 面向对象组成 this指向 第一个面向对象 第一个面向对象加强版 第一个面向对象(this) 原型 原型...

  • 面向对象

    面向对象思想面向对象基本概述面向对象是基于面向过程的编程思想。面向对象:强调的是每一个功能的步骤面向对象:强调的是...

  • 总结.Net基础知识——献给即将入坑的同行们(一期)

    什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗...

  • 面向对象基础

    面向对象编程包括: 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的编程实现(OOP) 面向对象思想...

网友评论

      本文标题:面向对象(一)

      本文链接:https://www.haomeiwen.com/subject/xfonsktx.html