详解JS构造函数中this和return


Posted in Javascript onSeptember 16, 2017

先看一段代码,

function Foo(name,age){
  this.name=name;
  this.age=age;
}
var foo=new Foo("Tom",14);
foo.name;//Tom
foo.age;//14

使用构造函数实例化发生的流程:

1.建立一个foo的空对象。

2.将构造函数中的Foo的this指向对象foo。

3.foo的_proto_属性指向Foo函数的prototype原型。

4.执行构造函数中的代码。

相对于普通函数,构造函数中的this是指向实例的,而普通函数调用中的this是指向windows的。

构造函数中如果加入了return的话,分两种情况

function Foo(name,age){
  this.name=name;
  this.age=age;
  return {name:"Jeff"}
}
var foo=new Foo("Tom",14);
foo.name;//Jeff

1.return的是五种简单数据类型:String,Number,Boolean,Null,Undefined。

这种情况下,忽视return值,依然返回this对象。

2.return的是Object。

 这种情况下,不再返回this对象,而是返回return语句的返回值。

总结

以上所述是小编给大家介绍的JS构造函数中this和return,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言小编会及时回复大家的!

Javascript 相关文章推荐
JavaScript的变量作用域深入理解
Oct 25 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
Aug 29 Javascript
详解webpack打包vue时提取css
May 26 Javascript
PHP自动加载autoload和命名空间的应用小结
Dec 01 Javascript
解决修复npm安装全局模块权限的问题
May 17 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
May 13 Javascript
微信小程序template模板与component组件的区别和使用详解
May 22 Javascript
layui form表单提交后实现自动刷新
Oct 25 Javascript
用vue写一个日历
Nov 02 Javascript
Angular使用Md5加密的解决方法
Sep 16 #Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 #Javascript
EasyUI创建人员树的实例代码
Sep 15 #Javascript
webpack构建react多页面应用详解
Sep 15 #Javascript
详解Vue中一种简易路由传参办法
Sep 15 #Javascript
JavaScript实现换肤功能
Sep 15 #Javascript
jQuery实现火车票买票城市选择切换功能
Sep 15 #jQuery
You might like
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
JS继承定义与使用方法简单示例
2020/02/19 Javascript
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
python提取内容关键词的方法
2015/03/16 Python
Python的requests网络编程包使用教程
2016/07/11 Python
python实现汉诺塔方法汇总
2016/07/25 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
HTML5安全介绍之内容安全策略(CSP)简介
2012/07/10 HTML / CSS
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
2016/07/26 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
七年级英语教学反思
2014/01/15 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
施工材料员岗位职责
2014/02/12 职场文书
《蚂蚁和蝈蝈》教学反思
2014/02/24 职场文书
洗发露广告词
2014/03/14 职场文书
竞赛口号大全
2014/06/16 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
python实现简单石头剪刀布游戏
2021/10/24 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python