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


Posted in Javascript onNovember 05, 2016

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

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

在函数调用的时候:

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>

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

Javascript 相关文章推荐
js 页面执行时间计算代码
Mar 04 Javascript
JS格式化数字金额用逗号隔开保留两位小数
Oct 18 Javascript
ExpressJS入门实例
Jan 14 Javascript
jquery合并表格中相同文本的相邻单元格
Jul 17 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
javascript实现动态显示颜色块的报表效果
Apr 10 Javascript
基于vue中css预加载使用sass的配置方式详解
Mar 13 Javascript
浅析vue-router原理
Oct 19 Javascript
React优化子组件render的使用
May 12 Javascript
8 个有用的JS技巧(推荐)
Jul 03 Javascript
JQuery样式与属性设置方法分析
Dec 07 jQuery
javascript开发实现贪吃蛇游戏
Jul 31 Javascript
Javascript 函数的四种调用模式
Nov 05 #Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
Nov 04 #Javascript
jQuery中 $ 符号的冲突问题及解决方案
Nov 04 #Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 #Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
Nov 04 #Javascript
使用Ajax与服务器(JSON)通信实例
Nov 04 #Javascript
AngularJS过滤器filter用法实例分析
Nov 04 #Javascript
You might like
PHP APC配置文件2套和参数详解
2014/06/11 PHP
php表单敏感字符过滤类
2014/12/08 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
可以将word转成html的js代码
2010/04/11 Javascript
JS 树形递归实例代码
2010/05/18 Javascript
页面只能打开一次Cooike如何实现
2012/12/04 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
python的三目运算符和not in运算符使用示例
2014/03/03 Python
python结合API实现即时天气信息
2016/01/19 Python
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python编写一个优美的下载器
2018/04/15 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
Unix控制后台进程都有哪些进程
2016/09/22 面试题
大学生物业管理求职信
2013/10/24 职场文书
学期研究性学习个人的自我评价
2014/01/09 职场文书
自考生自我评价分享
2014/01/18 职场文书
违反课堂纪律检讨书
2014/01/19 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
2014年班主任工作总结
2014/11/08 职场文书
2014七年级班主任工作总结
2014/12/05 职场文书
科级干部培训心得体会
2016/01/06 职场文书
老舍《猫》教学反思
2016/02/17 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers