js面向对象-工场形式和组织函数形式

什么是面向对象

把数据和行动(对数据的操纵)结合起来,有类的观点,经由历程类建立恣意多个具有雷同属性和要领的对象

  • 继续:能够使子类复用父类公然的变量、要领;
  • 封装:屏障一系列的细节。使外部挪用时只需晓得这个要领的存在;
  • 多态:父类的要领继续的到子类今后能够有差别的完成体式格局;
var Person = {
    name: "wheeler",
    age: 25,
    inMeeting: function () {
        return "I am in Meeting";
    }
};

建立对象

为了防止反复造轮子,发生大批的代码,我们能够运用工场形式和组织函数形式。
建立对象现在有两种体式格局:

  • 对象字面量
var Person = {
    name: "wheeler",
    age: 25,
    inMeeting: function () {
        return "I am in Meeting";
    }
};

长处:天真轻易
瑕玷:每建立一个新的对象都须要写出完全的定义语句,不便于建立大批雷同范例的对象,不利于运用继续等高等特征

  • 运用new表达式

主如果合营组织函数运用

function Person(name, age, dream){
    this.name = name;
    this.age = age;
    this.dream = dream;
    this.myDream =function () {
        alert(this.dream);
    }
};
person1 = new Person('wheeler', 25, "哈哈");
person2 = new Person('wheeler2', 26, "嘿嘿");

工场形式

什么是工场形式?就是像工场一样批量建立对象。详细来说,笼统建立详细对象的历程。

var createPerson = function (name, age, dream) {
    var person = {
        name: name,
        age: age,
        dream: function () {
            return dream;
        }
    };
    return person;

};
var person1 = createPerson('wheeler', 25, "哈哈");
var person2 = createPerson('wheeler2', 26, "嘿嘿");

组织函数形式

ECMAScript 中的组织函数可用来建立特定范例的对象。像Object和Array如许的原生组织函数,在运行时会自动出现在实行环境中。

function Person(name, age, dream){
    this.name = name;
    this.age = age;
    this.dream = dream;
    this.myDream =function () {
        alert(this.dream);
    }
};
var person1 = new Person('wheeler', 25, "哈哈");
var person2 = new Person('wheeler2', 26, "嘿嘿");

以上代码:

  • 没有显式地建立对象;
  • 直接将属性和要领赋给了this对象;
  • 没有return语句。

以这类体式格局挪用组织函数现实上会阅历以下4个步骤:

  • 建立一个新对象;
  • 将组织函数的作用域赋给新对象(因而this就指向了这个新对象);
  • 实行组织函数中的代码(为这个新对象增加属性);
  • 返回新对象。
    原文作者:Wheeler
    原文地址: https://segmentfault.com/a/1190000015942921
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞