详解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 相关文章推荐
js控制CSS样式属性语法对照表
Dec 11 Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
Jun 09 Javascript
一个简单的jquery的多选下拉框(自写)
May 05 Javascript
JS控制表单提交的方法
Jul 09 Javascript
BootStrap中Datetimepicker和uploadify插件应用实例小结
May 26 Javascript
jQuery查找节点并获取节点属性的方法
Sep 09 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
Sep 19 Javascript
详解微信小程序 相对定位和绝对定位
May 11 Javascript
webpack多入口多出口的实现方法
Aug 17 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
Nov 05 Javascript
通过JS运行机制的角度说说作用域
Mar 12 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获取mysql数据表的字段名称和详细信息的方法
2014/09/27 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
IE下js调试工具Companion.JS
2010/10/15 Javascript
使用js 设置url参数
2013/07/08 Javascript
JQuery中extend使用介绍
2014/03/13 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
微信小程序封装多张图片上传api代码实例
2019/12/30 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
Python实现建立SSH连接的方法
2015/06/03 Python
python 调用HBase的简单实例
2016/12/18 Python
python数据归一化及三种方法详解
2019/08/06 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
python中实现词云图的示例
2020/12/19 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
澳大利亚领先的折扣药房:Chemist Direct(有中文站)
2018/11/24 全球购物
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
几个Shell Script面试题
2012/08/31 面试题
幽默导游词开场白
2015/05/29 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
导游词之日本富士山
2020/01/06 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android
Python&Matlab实现樱花的绘制
2022/04/07 Python
vue判断按钮是否可以点击
2022/04/09 Vue.js