JS复习:第六章

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS复习:第六章相关的知识,希望对你有一定的参考价值。

创建对象

一、工厂模式

function createPerson(name,age,job){
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.sayName = function(){
        alert(this.name);
    };
    return 0;
}

var person1 = createPerson("Nicholas","29","Software Engineer");
var person2 = createPerson("Greg","27","Doctor");

工厂模式存在的缺陷是无法解决对象识别的问题。因此出现了构造函数模式

二、构造函数模式

创建自定义的构造函数,从而自定义对象类型的属性和方法。以上代码重写如下:

function Person(name,age,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        alert(this.name);
    };
}

var person1 = new Person("Nicholas","29","Software Engineer");
var person2 = new Person("Greg","27","Doctor");

任何函数,只要通过new操作符来调用就可以作为构造函数。构造函数的缺点是每个方法都要在每个实例上重新创建一遍。

三、原型模式

 

function Person(){
}
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
Person.prototype.job = "Software Engineer";
Person.prototype.sayName = function(){
    alert(this.name);
};
var person1 = new Person();
person1.sayName();    //"Nicholas"

var person2 = new Person();
person2.sayName();     //"Nicholas"

alert(person1.sayName == person2.sayName);    //"true"

将sayName( )方法和所有属性直接添加到了Person的prototype属性中,构造函数变成空函数。任然可以通过调用构造函数在创建新对象,而且新对象还会具有相同的属性和方法。但与构造函数模式不同的是,新对象的这些属性和方法是由所有实例共享的。

以上是关于JS复习:第六章的主要内容,如果未能解决你的问题,请参考以下文章

Linux复习《第六章存储结构与磁盘划分》磁盘划分和磁盘配额全操作

第六章.解决大问题

《信息与编码》考试复习笔记6----第六章连续信源熵和信道容量相关例题

201671010122 2016-2017-2 《JAVA程序设计》第六章复习总结

《信息与编码》考试复习笔记6----第六章连续信源熵和信道容量(考点在连续信道容量)

《通信原理》复习笔记6----第六章数字基带传输系统相关例题(重中之重点+难上加难点)