关于js中new关键字的理解,先来看个例子:
像这样创建实例时使用new与不使用new有什么区别????
function ParasiticPerson(name, age, job) {
    var o = new Object();
    o.name = name;
    o.age = age;
    o.job = job;
    o.say = function () {
        document.write("Hello,I'm " + this.name + "," + this.age + " years old,i'm a " + this.job+"。<br/>");
    }

return o;
}
var person1 = new ParasiticPerson("wede", 25, "SoftWare"); //使用new
person1.say(); //Hello,I'm wede,25 years old,i'm a SoftWare。

var person4 = ParasiticPerson("jack", 35, "SuperStar"); //不使用new
person4.say(); //Hello,I'm jack,35 years old,i'm a SuperStar。

//答案1:构造函数与其他函数唯一的区别在于调用它们的方式不同。P146
//任何函数,只要通过new操作符来调用,那它就可以作为构造函数;而任何函数,如果不通过new操作符来调用,那它就跟普通函数没什么两样。
//但还是有疑问:既然使用和不使用new都可以,那为什么构造函数创建对象一定要使用new呢?

上面的答案并不能被真正理解,请看下面的回答:
答案2:揭晓答案前,先看下面的例子:

当不用new直接var a2=A1()时,其实只是相当于执行了一遍构造函数,这和执行普通函数一样,本例而言最后会返回false赋值给a2变量;而用new创建的是一个实例对象,这时候var a1=new A1()会忽略构造函数里的return 语句(这是语言的规则指定的,如果用new调用,就会返回这个new之后的构造函数的引用),所以,new之后会创建一个实例,并且这个实例是包含实例成员和原型成员的。

最新文章

  1. 基础拾遗------redis详解
  2. 使用Struts2搭建登录注册示例
  3. linux下使用yum安装mysql
  4. 在MS SQLSERVER中如何最快的速度清空所有用户表的数据
  5. CAS认证原理图
  6. mysql 2003 10038 连接不上的解决
  7. hdu 4627 The Unsolvable Problem
  8. 黄聪:C#操作xml SelectNodes,SelectSingleNode通过 xPath 定位class包含Contains的DIV
  9. android任意view爆炸效果--第三方开源--ExplosionField
  10. 修改Eclipse格式化代默认长度
  11. WordPress数据备份
  12. 模拟select选中option的效果
  13. Systemc在VC++2010安装方法及如何在VC++2010运行Noxim模拟器
  14. django 报错 : django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting
  15. 在linux中安装selenium+chrome
  16. 监控端口是否开放,端口未开放关闭虚拟ip,端口开放启动虚拟IP
  17. LVS群集配置
  18. UVa LA 3029 City Game 状态拆分,最大子矩阵O(n2) 难度:2
  19. MySQL存储过程 事务transaction
  20. Validate Binary Search Tree leetcode java

热门文章

  1. 如何卸载oracle11g
  2. arcgis python 参数验证
  3. arcgis python 随机取部分数据
  4. centos7 安装 mysql(在线安装)
  5. Coarse-to-Fine超分辨率相关
  6. Qt编写自定义控件29-颜色选取面板
  7. jemter 90%line的解释
  8. 我的dbtreeview–treeview直接连接数据表_delphi教程
  9. kubernetes之StatefulSet部署zk和kafka
  10. Node.js使用superagent模拟GET/POST请求样例