美文网首页
关于new运算符

关于new运算符

作者: bpup | 来源:发表于2017-06-19 20:24 被阅读0次

function Base(){
...
}

var obj = new Base();
这样代码的结果是什么,我们在javascript引擎中看到的对象模型是:


joo_3.png

;

new操作符具体干了什么呢?其实很简单,就干了三件事情。

var obj = {};
obj.proto = Base.prototype;
Base.call(obj);

如果我们给Base.prototype的对象添加一些函数会有什么效果呢?
例如代码如下:

Base.prototype.toString = function() {
return this.id;
}

那么当我们使用new创建一个新对象的时候,根据proto的特性,toString这个方法也可以做新对象的方法被访问到。于是我们看到了:
构造函数中,我们来设置‘类’的成员变量(例如:例子中的id),构造对象prototype中我们来设置‘类’的公共方法。于是通过函数对象和Javascript特有的proto与prototype成员及new操作符,模拟出类和类实例化的效果。

相关文章

  • 模拟实现new

    mdn关于new运算符的介绍: new 运算符创建一个自定义对象或具有构造函数的内置对象的实例。 是不是看着有点懵...

  • 关于new运算符

    function Base(){...} var obj = new Base();这样代码的结果是什么,我们在j...

  • 第四章 对象和数组

    Object类型 创建方法有两种,字面量和new运算符 1. 使用new运算符 let obj = new Obj...

  • 原型和原型链

    一、new 和 构造函数 1.1 new 运算符 new 运算符用来创建一个新的对象,其后面需紧跟一个函数,该函数...

  • new.target

    new.target属性允许检测函数或构造方法是否是通过new运算符被调用的。通过new运算符被初始化的函数或构造...

  • instanceof 运算符 和 new运算符

    1. new运算符 new运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。 更多new知识请...

  • js中new操作符做了什么并实现自己的new操作符

    我们通过new运算符的使用,来探寻new操作符在执行的过程中究竟做了哪些操作,并且根据操作实现自己的new运算符。...

  • new 和 delete

    new和delete运算符是用于动态分配和撤销内存的运算符。搭配使用。(堆) 1)new int; //开辟一个...

  • 02-01-工厂模式和new运算符

    所有详细示例代码都在这里. 选项卡思路: 工厂模式: new 运算符new 运算符: 1.执行函数; 2.自动...

  • 浅谈 JavaScript new 执行过程及function原

    通过new运算符执行结果与直接执行函数结果不一样。new返回了一个对象 new运算符会根据方法返回值的不同,执行方...

网友评论

      本文标题:关于new运算符

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