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 相关文章推荐
javascript引用对象的方法代码
Aug 13 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
May 29 Javascript
基于jQuery实现最基本的淡入淡出效果实例
Feb 02 Javascript
js+jquery常用知识点汇总
Mar 03 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
Jan 08 Javascript
ionic 上拉菜单(ActionSheet)实例代码
Jun 06 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 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
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
2013/04/02 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
2017/04/20 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
python使用邻接矩阵构造图代码示例
2017/11/10 Python
Django uwsgi Nginx 的生产环境部署详解
2019/02/02 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
美国知名的女性服饰品牌:LOFT(洛芙特)
2016/08/05 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
酒店管理自荐信
2013/10/23 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
世界读书日的活动方案
2014/08/20 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
绍兴鲁迅故居导游词
2015/02/09 职场文书
2015年学生会干事工作总结
2015/04/09 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
Java完整实现记事本代码
2022/06/16 Java/Android