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 相关文章推荐
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
jQuery设置和获取HTML、文本和值示例
Jul 08 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
浅析javascript函数表达式
Feb 10 Javascript
JavaScript开发者必备的10个Sublime Text插件
Feb 27 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
js实现移动端轮播图效果
Dec 09 Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
vuex直接赋值的三种方法总结
Sep 16 Javascript
mpvue小程序循环动画开启暂停的实现方法
May 15 Javascript
layui使用form表单实现post请求页面跳转的方法
Sep 14 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 SQL之where语句生成器
2009/03/24 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
基于jQuery实现仿搜狐辩论投票动画代码(附源码下载)
2016/02/18 Javascript
轮播图组件js代码
2016/08/08 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
Python中的并发编程实例
2014/07/07 Python
python 自动去除空行的实例
2018/07/24 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
Python  Django 母版和继承解析
2019/08/09 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
关于.NET, HTML的五个问题
2012/08/29 面试题
学校七一活动方案
2014/01/19 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
环保建议书500字
2014/05/14 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
2014中考励志标语
2014/06/05 职场文书
教师节倡议书
2014/08/30 职场文书
铣工实训报告
2014/11/05 职场文书
离婚协议书怎么写的
2014/12/14 职场文书
捐助感谢信
2015/01/22 职场文书
行政主管岗位职责
2015/02/03 职场文书