构造函数也是函数

  构造函数和其它函数的唯一区别: 构造函数是通过new操作符来调用的。

  也就是说如果构造函数不用new操作符来调用,那它就是普通函数,反过来说任何函数通过new操作符来调用就可以当做构造函数。

  

    function Car(name,color,speed,type){
this.name=name;
this.color=color;
this.speed=speed;
this.type=type;
}
//通过new来调用
var car1=new Car('xixi','red',2,'a');
console.log(car1.name); //xixi
//没用new来调用
var car2=Car('haha','green',3,'b');
console.log(car2.name); //报错
console.log(window.name); // haha

  上面的例子表明,如果构造函数没有通过new来调用的话,this对象指向的是window(在浏览器中),和普通函数没有任何区别。。。  

    

    

JavaScript中函数和构造函数的区别的更多相关文章

  1. <JavaScript> 普通函数与构造函数的区别

    JavaScript中存在构造函数与函数两个概念. 这可能会给初学者造成一定的困扰,难不成存在两种函数. 然而事实这两种函数的构成完全一样,无论从长相还是气质都是一模一样的. 区别点在于,所扮演觉得不 ...

  2. Javascript中函数的四种调用方式

    一.Javascript中函数的几个基本知识点: 1.函数的名字只是一个指向函数的指针,所以即使在不同的执行环境,即不同对象调用这个函数,这个函数指向的仍然是同一个函数. 2.函数中有两个特殊的内部属 ...

  3. JavaScript中函数的形参和实参的实现原理剖析

    我们都知道JS里面参数的传递是可以不一样的,比如我们有一个函数: <script type="text/javascript"> function one(a,b,c) ...

  4. JavaScript中:表达式和语句的区别

    JavaScript中:表达式和语句的区别 Javascript语言精粹:表达式是由运算符构成,并运算产生结果的语法结构.程序是由语句构成,语句则是由“:(分号)”分隔的句子或命令.如果在表达式后面加 ...

  5. 牛客网Java刷题知识点之构造函数是什么、一般函数和构造函数什么区别呢、构造函数的重载、构造函数的内存图解

    不多说,直接上干货! 构造函数是什么? 构建创造对象时调用的函数. 构造函数是一种特殊的函数,用来在对象实例化时初始化对象的成员变量. 注意: 创建对象都必须要通过构造函数初始化. 构造函数的特点   ...

  6. JavaScript中函数的调用!

    JavaScript中函数的调用! 1 普通函数 // 1 普通函数 function fn() { console.log(123); } // 函数名 + 一个小括号! 或者 函数名.call() ...

  7. JavaScript中函数函数的定义与变量的声明<基础知识一>

    1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...

  8. oracle中函数和存储过程的区别和联系【转载竹沥半夏】

    oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己 ...

  9. Mysql中函数和存储过程的区别

    Mysql中函数和存储过程的区别 存储过程: 1.       可以写sql语句 2.       inout,out构造返回值 3.       调用:call:存储过程名称 4.       可以 ...

随机推荐

  1. UTC时间与北京时间

    经常混淆于此,特地研究了一下,记录在此以备忘. 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal ...

  2. 0523 Scrum项目6.0

    0523 团队项目6.0 一,组员任务完成情况 首页设计初步完成但是需要优化界面,只能简单的输出信息和在首页进行登录.界面极其简单.使用了Javabean的设计模式,进行改进,使得页面的里的代码看起来 ...

  3. 第四周PSP&进度条

    团队项目PSP 一:表格     C类型 C内容 S开始时间 E结束时间 I时间间隔 T净时间(mins) 预计花费时间(mins) 讨论 讨论开发环境.工具以及技术 8:37 10:42 25 10 ...

  4. (一)Jmeter 简单的录制

    JMeter介绍 1.JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具.JMeter可以用于测试静态或者动态资源的性能(文件.Servle ...

  5. 总结MySQL修改最大连接数的两个方式

    最大连接数是可以通过mysql进行修改的,mysql数据库修改最大连接数常用有两种方法,今天我们分析一下这两种方法之间的特点和区别,以便我们能更好的去维护mysql.下面我们来看一下mysql修改最大 ...

  6. Linux adduser

  7. Android ComponentName的用法

    ComponentName(组件名称)是用来打开其他应用程序中的Activity或服务的. 用法: Intent it=new Intent(); it.setComponent(new Compon ...

  8. matlab dist函数

    dist——欧式距离加权函数(Euclidean distance weight function) 语法: Z = dist(W,P)    df = dist('deriv')    D = di ...

  9. jdbc的封装(使用参数文件)

    借鉴原CSDN作者yanzi1225627的一篇:http://blog.csdn.net/yanzi1225627/article/details/26950615 作者东西写的很好,自己用的时候进 ...

  10. Trailing Zeroes (II) LightOJ - 1090(预处理+前缀和)

    求C(n,r)*p^q的后缀零 考虑一下 是不是就是求 10^k*m  的k的最大值 而10又是由2 和 5 组成  所以即是求 2^k1 * 5^k2 * m1 中k1和k2小的那一个数 短板效应嘛 ...