美文网首页
JS中new详解

JS中new详解

作者: wyc0859 | 来源:发表于2022-03-15 10:56 被阅读0次

new对象底层发生了什么

function Person(phone, age) {
  this.age = age;
  this.phone = phone;
  this.showone = function () {};
}
Person.prototype.docall = function () {
  console.log("电话:", this.phone);
};

let person = new Person("12344", 23);
console.log("person", person); //3个属性方法,原型上1个方法,constructor指向Person对象
console.log("person的类型是:", typeof person);
//类型是object,并不是person。因为typeof只认识基础类型
//if (typeof person === "")  //这里的引号会提示有哪些基础类型

new 一个实例对象的底层实际就3步

1.创建一个 Object 对象

var obj = {}; //底层实际是new Object();
console.log("第1步:", obj); //此时:constructor指向Object对象(祖先)

2.让新创建的对象的 proto 变量指向 Person 原型对象空间

obj.__proto__ = Person.prototype;
console.log("第2步:", obj); //到这里,第一步打印和现在的打印都变成:原型上1个方法,constructor指向Person对象

3.借用Person构造函数中的为 obj 对象变量增加 age 属性和 phone 属性

Person.apply(obj, ["12344", 23]); //apply借用
console.log("第3步:", obj); //可以看到和new出来的对象一模一样,3个属性方法,原型上1个方法,constructor指向Person对象

相关文章

  • JS中new详解

    new对象底层发生了什么 new 一个实例对象的底层实际就3步 1.创建一个 Object 对象 2.让新创建的对...

  • 详解 JS 中 new 调用函数原理

    JavaScript 中经常使用构造函数创建对象(通过 new 操作符调用一个函数),那在使用 new 调用一个函...

  • JS写事件代理

    js中的事件委托或是事件代理详解

  • js new 运行机制

    js手札--js中new到底做了些啥JS核心系列:理解 new 的运行机制深入理解 Javascript 运行机制及原型

  • js中的new

    output:

  • js中的new()

    new 运算符创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例。 语法 new constructo...

  • JS中的new

    现在写一个函数,这个函数的返回值是一个对象,来观察一下这个对象,和函数体内this指向 ①,对象a就是一个空对象 ...

  • js作用域

    title: js作用域详解date: 2019-03-15 09:45:23tags: js 变量作用域 js中...

  • js面试题--new的原理

    JS中的new操作符 和其他高级语言一样,JS中也有new运算符,我们知道new运算符是用来实例化一个类,从而在内...

  • js的包装对象

    在另一篇文章 js的new运算符详解 提到过包装对象,这里详细解释下。 我们之前说string、number 和 ...

网友评论

      本文标题:JS中new详解

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