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脚本类
Aug 27 Javascript
多个js与css文件的合并方法详细说明
Dec 26 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
May 05 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
mui框架移动开发初体验详解
Oct 11 Javascript
使用vue-cli导入Element UI组件的方法
May 16 Javascript
微信小程序时间选择插件使用详解
Dec 28 Javascript
React 实现拖拽功能的示例代码
Jan 06 Javascript
vue-cli4.5.x快速搭建项目
May 30 Vue.js
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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
JavaScript实现自定义媒体播放器方法介绍
2017/01/03 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
在vue项目中,将juery设置为全局变量的方法
2018/09/25 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
带你认识Django
2019/01/15 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
2020/03/24 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
大学生表扬信范文
2014/01/09 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
捐书活动倡议书
2015/04/27 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
小学语文教学随笔
2015/08/14 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
PL350与SW11的比较
2021/04/22 无线电
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL