详解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 相关文章推荐
在html页面中包含共享页面的方法
Oct 24 Javascript
jQuery查询数据返回object和字符串影响原因是什么
Aug 09 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
requireJS使用指南
Apr 27 Javascript
jQuery实现判断控件是否显示的方法
Jan 11 Javascript
vue2.0 根据状态值进行样式的改变展示方法
Mar 13 Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php实现向javascript传递数组的方法
2015/07/27 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JQuery中each()的使用方法说明
2010/08/19 Javascript
JQuery扩展插件Validate—6 radio、checkbox、select的验证
2011/09/05 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
JavaScript 参数中的数组展开 [译]
2012/09/21 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
AngularJS 实现点击按钮获取验证码功能实例代码
2017/07/13 Javascript
JavaScript 自定义事件之我见
2017/09/25 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
js实现QQ邮箱邮件拖拽删除功能
2020/08/27 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
python实现求特征选择的信息增益
2018/12/18 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Python 使用多属性来进行排序
2019/09/01 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
请用用Java代码写一个堆栈
2012/01/26 面试题
党员先进性教育整改措施
2014/09/18 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
小学班主任心得体会
2016/01/07 职场文书
如何做好工作总结!
2019/04/10 职场文书