Javascript 普通函数和构造函数的区别


普通函数和构造函数的区别

在命名规则上,构造函数一般是首字母大写,普通函数遵照小驼峰式命名法。

在函数调用的时候:

function fn() { }

构造函数:1. new fn( )
2 .构造函数内部会创建一个新的对象,即f的实例
3. 函数内部的this指向 新创建的f的实例
4. 默认的返回值是f的实例

普通函数:1. fn( )
2. 在调用函数的内部不会创建新的对象
3. 函数内部的this指向调用函数的对象(如果没有对象调用,默认是window)
4. 返回值由return语句决定

构造函数的返回值:

有一个默认的返回值,新创建的对象(实例);
当手动添加返回值后(return语句):

1. 返回值是基本数据类型-->真正的返回值还是那个新创建的对象(实例)
2. 返回值是复杂数据类型(对象)-->真正的返回值是这个对象

看一个常见的面试题

<script>
  function foo() {
    var f2 = new foo2();
    console.log(f2);  //{a: 3}
    console.log(this); //window
    return true;
  }
  function foo2() {
    console.log(this); //foo2类型的对象 不是foo2函数
//    this.age = 30;
    return {a: 3};
  }
  var f1 = foo();
  console.log(f1); // true
</script>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

JS 全屏和退出全屏详解及实例代码
JS全屏和退出全屏js实现浏览器窗口全屏和退出全屏的功能,市面上主流浏览器如:谷歌、火狐、360等都是兼容的,不过IE低版本有点瑕疵(全屏状态下

Javascript数组循环遍历之forEach详解
1.js数组循环遍历。数组循环变量,最先想到的就是for(vari=0;icount;i++)这样的方式了。除此之外,也可以使用较简便的forEach方式2.forEach函数。Firefox和Chrome

Ajax的概述与实现过程
一、ajax概述1、Ajax是Asynchronous(['skrns)JavaScriptXML的简写,不是一门新技术,而是对现有技术的综合利用。这一技术能够向服务器请求额外数据而无需刷