使用new关键字调用函数(new ClassA(…))的具体步骤:
1. 创建空对象{}
2. 使用新对象,调用函数,函数中的this被指向新实例对象:
{}.构造函数();
3. 设置新对象的constructor属性为构造函数的名称,设置新对象的__proto__属性指向构造函数的prototype对象
4. 将初始化完毕的新对象地址,保存到等号左边的变量中
注意:若构造函数中没有返回值或返回值是基本类型(Number、String、Boolean)的值,则返回新实例对象;若返回值是引用类型的值,则实际返回值为这个引用类型。
var foo = "bar"; function test () { this.foo = "foo"; } new test(); //test中的this指新对象,并未改变全局的foo属性 console.log(this.foo); // "bar" console.log(new testThis().foo); // "foo";new和属性访问.运算符优先级相通,从左往右执行
以上皆为个人理解,如有错误之处,欢迎留言指正。
希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持北冥有鱼!
您可能感兴趣的文章:
- JS中使用new Option()实现时间联动效果
- JS中‘hello’与new String(‘hello’)引出的问题详解
- 原生JS封装_new函数实现new关键字的功能
- JavaScript new对象的四个过程实例浅析
- 详解Javascript中new()到底做了些什么?
- javascript中new Array()和var arr=[]用法区别
- 用Newtonsoft将json串转为对象的方法(详解)
- JavaScript中new运算符的实现过程解析