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 相关文章推荐
28个JS验证函数收集
Mar 02 Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
网络传输协议(http协议)
Nov 18 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
jQuery validate 验证radio实例
Mar 01 Javascript
JavaScript ES6中export、import与export default的用法和区别
Mar 14 Javascript
JavaScript实现各种排序的代码详解
Aug 28 Javascript
Vue组件中slot的用法
Jan 30 Javascript
微信小程序配置服务器提示验证token失败的解决方法
Apr 03 Javascript
微信小程序登录对接Django后端实现JWT方式验证登录详解
Jul 29 Javascript
vue 数据操作相关总结
Dec 17 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将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
JS 事件绑定函数代码
2010/04/28 Javascript
修改js Calendar日历控件 兼容IE9/谷歌/火狐
2013/01/04 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
javascript实现密码验证
2015/11/10 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
Python Tkinter GUI编程入门介绍
2015/03/10 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
python中sys模块是做什么用的
2020/08/16 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
车辆安全检查制度
2014/01/12 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
实训报告范文大全
2014/11/04 职场文书
工程部经理岗位职责
2015/02/02 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers