详解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 相关文章推荐
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
May 17 Javascript
详解JavaScript中的客户端消息框架设计原理
Jun 24 Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
Apr 05 Javascript
Node中使用ES6语法的基础教程
Jan 05 Javascript
详解Angular模板引用变量及其作用域
Nov 23 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
Jun 09 Javascript
小程序Request的另类用法详解
Aug 09 Javascript
vue路由教程之静态路由
Sep 03 Javascript
Vue.js下拉菜单组件使用方法详解
Oct 19 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
Oct 22 Javascript
vue中使用腾讯云Im的示例
Oct 23 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
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
js中开关变量使用实例
2017/02/24 Javascript
浅谈js中的this问题
2017/08/31 Javascript
JavaScript 有用的代码片段和 trick
2018/02/22 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
Python多线程爬虫实战_爬取糗事百科段子的实例
2017/12/15 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
numpy.linspace函数具体使用详解
2019/05/27 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
python math模块的基本使用教程
2021/01/16 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
临床医学应届生求职信
2013/11/06 职场文书
优秀生推荐信范文
2013/11/28 职场文书
高二地理教学反思
2014/01/24 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
2015年教师自我评价范文
2015/03/04 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书