美文网首页WEB前端程序开发程序员
Javascript面向对象编程(1)-- JS对象的创建方式与

Javascript面向对象编程(1)-- JS对象的创建方式与

作者: 远行的猪王学红 | 来源:发表于2019-02-27 16:54 被阅读138次

Javascript是一门真正的面向对象语言,而不是很多人认为的没有java/C++等语言语法的就不是面向对象语言。只是Javascript面向对象的实现是基于对象实现的,秉承一切皆对象的思想。
既然Javascript的面向对象是基于对象的,那我们在这里先来探讨一下Javascript的对象模型。

  • Javascript对象创建的方法
    • 对象字面量
          let  person1 = {
                name: 'Jack Ma',
                age: 60
          };
          let person2 = {
                name: 'Polly',
                age: 58
         } ;
      

对象字面量是最直接的对象创建方式,上面两个对象分别代表Jack Ma、Polly 两个人,他们除了成员一致外,没有实质关系,代码无法复用,使用不太方便。所以我们总结一下字面量的缺点有一下几点:

  • 首先,虽然都是对象,但脱离的面向对象的概念,没有抽象层。

  • 第二,两个对象都是表示一个类型的实例却没办法在逻辑层面表现出来。

  • 第三,代码复用低,每一个对象都要去构建相同的属性,很麻烦。

  • 第四,没有类型名称不利于继承,对面向对象是一大障碍。

  • 对象工厂函数方法

      let person = function (name, age) {
          return {name: name, age: age};
      };
      let person1 = person ('Jack Ma', 60);
      let person2 = person ('Polly', 58);
    

此方法解决了字面量中代码的复用问题,但是对继承等面向对象的支持还是不足。

  • 使用构造函数的方式
    function Person (name, age) {
          this.age  = age;
          this.name = name;
    }
   let person1 = new Person ('Jack Ma', 60);
   let person2 = new Person('Polly', 58);

构造函数就其实就是一个普通的函数,当对构造函数使用new进行实例化时,会将其内部this的指向绑定实例对象上,下面我们来创建一个Person构造函数(构造函数约定使用大写开头,和普通函数做区分)。
构造函数首先作为一个函数,当我们直接调用时,函数内部的this指针会指向函数当前的作用域。在一般情况下我们会将构造函数定义在全局环境中,所以这是this指向全局环境(window浏览器/global nodejs)。
当我们使用new调用构造函数实例话时,函数作用域发生改变,作用域指向了实例后的对象,所以这时this指向它的作用域时就变成了刚刚创建的实例了。所以创建完成的对象实例拥有了我们设置在this上面的所有属性。
(对象的创建就先说到这里。接下来我将总结new实例对象的过程秘辛)

相关文章

  • Javascript面向对象编程(1)-- JS对象的创建方式与

    Javascript是一门真正的面向对象语言,而不是很多人认为的没有java/C++等语言语法的就不是面向对象语言...

  • javascript面向对象编程

    javascript面向对象编程一(封装) 通俗易懂绝对干货 JS面向对象编程

  • web-js-内置对象 面向对象

    内置对象 1、document 2、location 3、Math 面向对象 面向过程与面向对象编程 创建对象的方...

  • js面向对象的基本概念

    一、js 是一个基于对象的多范式的编程语言 1,面向过程的方式编程 2,面向对象的方式编程 3, 函数...

  • JavaScript学习笔记(一)

    Javascript面向对象 1. 面向对象编程介绍 1.1 两大编程思想 面向过程 & 面向对象 1.2 面向过...

  • ajax

    1. 面向对象 javascript 具有面向过程,面向对象,函数式编程的特点 javascript 重要 原型/...

  • ★ 面向对象编程

    OOP 面向对象编程 Object Oriented Programming 面向对象编程 是用抽象方式创建基于现...

  • JS面向对象

    面向对象编程 实例对象与 new 命令 JavaScript 语言具有很强的面向对象编程能力,这里介绍 JavaS...

  • JavaScript之 new 命令

    JavaScript 面向对象编程的基础知识篇 1 。 1. 概述 面向对象编程(Object Oriented ...

  • JS面向对象编程(1):创建对象

    1.OOP 指什么?有哪些特性? OOP(Object-Oriented Programming),即面向对象编程...

网友评论

    本文标题:Javascript面向对象编程(1)-- JS对象的创建方式与

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