javascript - js使用new的疑问?

查看:90
本文介绍了javascript - js使用new的疑问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1,第一种new对象没有加()没有见过,为什么调用的本身的方法?
2第三种双new是什么原理,和单个new有什么区别吗?

解决方案

首先要明确的是new也是一个一元操作符。
类推一下:

var temp = {x: 0};
++temp.x;

/*
*优先读取属性,再进行一元++,
*所以new aa.getName()相当于创建了一个以aa.getName为构造函数的实例并输出3
*
*而new aa().getName()相当于new Date().valueOf(),
*先执行了new aa()返回aa的实例,再调用实例的方法,输出2,没有创建实例,
*
*而第三个new new aa().getName()相当于先执行了new aa()返回aa的实例,
*再以此实例的方法getName为构造函数创建实例并输出2
*/

这篇关于javascript - js使用new的疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆