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 相关文章推荐
javascript 客户端验证上传图片的大小(兼容IE和火狐)
Aug 15 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
给文字加上着重号的JS代码
Nov 12 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
Apr 12 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
js实现Form栏显示全格式时间时钟效果代码
Aug 19 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
在DWR中实现直接获取一个JAVA类的返回值的两种方法
Dec 25 Javascript
微信小程序实现时间进度条功能
Nov 17 Javascript
如何解决vue在ios微信&quot;复制链接&quot;功能问题
Mar 26 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
自己动手做一个SQL解释器
2006/10/09 PHP
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
简单的过滤字符串中的HTML标记
2006/12/25 PHP
使用Linux五年积累的一些经验技巧
2013/06/20 PHP
浅析php面向对象public private protected 访问修饰符
2013/06/30 PHP
javascript 面向对象继承
2009/11/26 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
javascript读取本地文件和目录方法详解
2020/08/06 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
python爬取个性签名的方法
2018/06/17 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
公司授权委托书范本
2014/09/18 职场文书
转变工作作风心得体会
2016/01/23 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
python微信智能AI机器人实现多种支付方式
2022/04/12 Python