博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js中的var a = new A;与var a = new A()的区别
阅读量:7031 次
发布时间:2019-06-28

本文共 544 字,大约阅读时间需要 1 分钟。

JavaScript 中的new关键字与C#,JAVA中的概念完全不一样。

  例:var a=new A();
  让我们来看看在JavaScript中的new发生了什么?
  var a={};//建立了一个新对象;
  a.__proto__=A.prototype;  //将a的原型指向A;那么a就继承了A的方法与属性!
  A.call(a);//调用了A里的构造函数;
  document.write(a.__proto__===A.prototype);//为true 
(ie不支持!因为在IE中__proto__为私有属性,不能能访问)
  所以new的作用其实就是建了一个空的对象 ,并且通过原型链记录原始对象的方法与属性
那么var a=new A()与var a=new A 的没有太大的区别,他们都说明了建立对象所需要的说明,比如a.__proto__指向谁?空对象的名字?等等。但是有一个小小的区别就是,如果A的构造为下面这种:
  function A(name,addr){
  this.name=name;
this.addr=addr;
}
那么var a=new A就不好构建对象了

转载于:https://www.cnblogs.com/Tohold/p/9021063.html

你可能感兴趣的文章
Android开发之Activity转场动画
查看>>
List集合三种遍历方法
查看>>
【译】OpenDaylight控制器:YANG Schema和Model
查看>>
C#访问修饰符(public,private,protected,internal,sealed,abstract)
查看>>
android消息线程和消息队列
查看>>
EXCEL中计算不重复单元格的个数
查看>>
二层设备与三层设备的区别--总结
查看>>
安装pytorch成功但cuda不可用
查看>>
unity__DrawCall的理解
查看>>
springboot架构下运用shiro后在configuration,通过@Value获取不到值,总是为null
查看>>
SQLServer 数据库镜像+复制切换方案
查看>>
Postman初探
查看>>
仿淘宝头像上传功能(一)——前端篇。
查看>>
Eclipse通过集成svn实现版本控制
查看>>
OS开发过程中常用开源库
查看>>
关于在多个UItextield切换焦点
查看>>
hdu 2768
查看>>
git记住用户名密码
查看>>
ElasticSearch(2)-安装ElasticSearch
查看>>
从mysql数据表中随机取出一条记录
查看>>