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之WEB开发调试利器:Firebug 下载
Jan 13 Javascript
js DOM的学习笔记
Dec 22 Javascript
JQuery选择器特辑 详细小结
May 14 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
jQuery ajax动态生成table功能示例
Jun 14 jQuery
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
微信小程序实现同时上传多张图片
Feb 03 Javascript
vue-socket.io跨域问题有效解决方法
Feb 11 Javascript
加速vue组件渲染之性能优化
Apr 09 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 Javascript
原生js实现弹窗消息动画
Nov 20 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 metaphone()函数的定义和用法
2016/05/15 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
js定时器(执行一次、重复执行)
2014/03/07 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
js点击事件的执行过程实例分析【冒泡与捕获】
2020/04/11 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
python进阶教程之动态类型详解
2014/08/30 Python
Python二维码生成识别实例详解
2019/07/16 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
在spyder IPython console中,运行代码加入参数的实例
2020/04/20 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
加拿大便宜的隐形眼镜商店:Clearly
2016/09/15 全球购物
房产代理公证处委托书
2014/04/04 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
违章停车检讨书
2014/10/21 职场文书
家属答谢词
2015/01/05 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
首次购房证明
2015/06/19 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
table不让td文字溢出操作方法
2022/12/24 HTML / CSS