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 代码优化点滴记录
Feb 19 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
Mar 05 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
JS排序之选择排序详解
Apr 08 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
微信小程序自定义tab实现多层tab嵌套功能
Jun 15 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
Jan 15 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
JS原型prototype和__proto__用法实例分析
Mar 14 Javascript
vue中如何添加百度统计代码
Dec 19 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可变函数的使用详解
2013/06/14 PHP
php实现的RSS生成类实例
2015/04/23 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
laravel 自定义常量的两种方案
2019/10/14 PHP
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
JS简单表单验证功能完整示例
2020/01/26 Javascript
浅谈vue生命周期共有几个阶段?分别是什么?
2020/08/07 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
Python科学计算环境推荐——Anaconda
2014/06/30 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
Django中的Signal代码详解
2018/02/05 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
python+OpenCV实现图像拼接
2020/03/05 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
面包店的创业计划书范文
2014/01/16 职场文书
春季运动会广播稿大全
2014/02/19 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
个人委托书如何写
2014/09/25 职场文书
科学育儿宣传标语
2014/10/08 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
使用python创建股票的时间序列可视化分析
2022/03/03 Python
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电