JavaScript 的new关键字理解

当我还是一个js初学者的时候总是忽视了new关键字的作用,也不理解new关键字在程序语言总取到的作用。只是知道js和其他语言一样也有new运算符。所以我想记录一下自己对new关键字的理解。

一、new应算符的经典应用

function Person(name,age){

    this.name = name;

    this.age = age;

};

Person.prototype.sayName = function(){

    console.log(this.age)

}

var person = new Person("paul",24);//构造函数;

person.name;//paul

p1.sayName();//24

在这一过程中new做了哪些工作呢 ,我们继续来分解new的运行过程。

二、new运算符的执行过程

我们先看MDN给出的new运算符的解释和对应的上面例子的生产过程:

    1.创建一个空的简单JavaScript对象(即{});

            var person  = {}

    2.链接该对象(即设置该对象的构造函数)到另一个对象 ;

            person._proto_= Person.protoype;//这里指新创建的空对象的原型指向构造函数的原型 即Person

    3.将步骤1新创建的对象作为this的上下文 ;

            Person.call(person,args);//改变this上下文 js中使用call,apply

    4.如果该函数没有返回对象,则返回this

            return person;//这里只有当构造函数没有返回值的时候才是返回新创建的对象,有返回值的情况稍后继续分析。

自此,我们得到新的person对象,我们称之为构造函数的实例。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容