详解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函数
Jul 21 Javascript
让getElementsByName适应IE和firefox的方法
Sep 24 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
May 23 Javascript
原生js配合cookie制作保存路径的拖拽
Dec 29 Javascript
基于javascript实现文字无缝滚动效果
Mar 22 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
angular中的cookie读写方法
Aug 02 Javascript
express express-session的使用小结
Dec 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
mysql,mysqli,PDO的各自不同介绍
2012/09/19 PHP
四个PHP非常实用的功能
2015/09/29 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
php实现简单四则运算器
2020/11/29 PHP
javascript第一课
2007/02/27 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
PYQT5设置textEdit自动滚屏的方法
2019/06/14 Python
Pandas聚合运算和分组运算的实现示例
2019/10/17 Python
Python常用模块函数代码汇总解析
2020/08/31 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
Html5自定义字体解决方法
2019/10/09 HTML / CSS
企事业单位求职者的自我评价
2013/12/28 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
2014年项目经理工作总结
2014/11/24 职场文书
毕业赠语大全
2015/06/23 职场文书
初中生物教学随笔
2015/08/15 职场文书
Nginx进程管理和重载原理详解
2021/04/22 Servers
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
java代码实现空间切割
2022/01/18 Java/Android
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript