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程序 入门者学习
Jul 09 Javascript
纯JS实现的批量图片预览加载功能
Aug 14 Javascript
Javascript小技能总结(推荐)
Jun 02 Javascript
jquery树形菜单效果的简单实例
Jun 06 Javascript
提高Web性能的前端优化技巧总结
Feb 27 Javascript
学习使用Bootstrap输入框、导航、分页等常用组件
May 11 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
微信小程序登录换取token的教程
May 31 Javascript
layer.open 按钮的点击事件关闭方法
Aug 17 Javascript
ES6入门教程之let、const的使用方法
Apr 13 Javascript
JS实现简易留言板(节点操作)
Mar 16 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 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设计模式  Command(命令模式)
2011/06/17 PHP
php中session使用示例
2014/03/29 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
使用Rancher在K8S上部署高性能PHP应用程序的教程
2020/07/10 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
IE与Firefox在JavaScript上的7个不同写法小结
2009/09/14 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
JS实现为动态添加的元素增加事件功能示例【基于事件委托】
2018/03/21 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
2021/02/23 Vue.js
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python基础语法(Python基础知识点)
2016/02/28 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
python爬取网易云音乐热歌榜实例代码
2020/08/07 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
以实惠的价格轻松租车,免费取消:Easyrentcars
2019/07/16 全球购物
中文系师范生自荐信
2013/10/01 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
淘宝活动策划方案
2014/02/06 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
项目负责人岗位职责
2015/02/15 职场文书
初一英语教学反思
2016/02/15 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript