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获取地址栏中传递的值
Jul 02 Javascript
JS控制日期显示的小例子
Nov 23 Javascript
javascript读写json示例
Apr 11 Javascript
JavaScript类型系统之基本数据类型与包装类型
Jan 06 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
Apr 13 Javascript
js导出excel文件的简洁方法(推荐)
Nov 02 Javascript
jQuery的ajax中使用FormData实现页面无刷新上传功能
Jan 16 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
微信小程序 转发功能的实现
Aug 04 Javascript
javascript实现Java中的Map对象功能的实例详解
Aug 21 Javascript
JavaScript数据结构之单链表和循环链表
Nov 28 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 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
PHP4与PHP5的时间格式问题
2008/02/17 PHP
php中opendir函数用法实例
2014/11/15 PHP
php类的定义与继承用法实例
2015/07/07 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
php获取flash尺寸详细数据的方法
2016/11/12 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
vux uploader 图片上传组件的安装使用方法
2018/05/15 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
升旗仪式主持词
2014/03/19 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
五年级上册复习计划
2015/01/19 职场文书
村主任当选感言
2015/08/01 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书