详解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实现的使用方向键控制光标在table单元格中切换
Nov 17 Javascript
javascript动画浅析
Aug 30 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
Jan 09 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
js网页右下角提示框实例
Oct 14 Javascript
JS组件Bootstrap Table使用实例分享
May 30 Javascript
探索webpack模块及webpack3新特性
Sep 18 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
详解Require.js与Sea.js的区别
Aug 05 Javascript
Jquery实现无缝向上循环滚动列表的特效
Feb 13 jQuery
express.js中间件说明详解
Mar 19 Javascript
原生js生成图片验证码
Oct 11 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
第九节 绑定 [9]
2006/10/09 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
PHP Ajax跨域问题解决方案代码实例
2020/08/01 PHP
原型方法的不同写法居然会影响调试的解决方法
2007/03/08 Javascript
用javascript实现的图片马赛克后显示并切换加文字功能
2007/04/21 Javascript
javascript radio 联动效果
2009/03/04 Javascript
让GoogleCode的SVN下的HTML文件在FireFox下正常显示.
2009/05/25 Javascript
一个简单的js树形菜单
2011/12/09 Javascript
JS实现很实用的对联广告代码(可自适应高度)
2015/09/18 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
JavaScript正则表达式和级联效果
2017/09/14 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中实现字符串类型与字典类型相互转换的方法
2014/08/18 Python
python编写爬虫小程序
2015/05/14 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
python实现QQ邮箱/163邮箱的邮件发送
2019/01/22 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
港湾网络笔试题
2014/04/19 面试题
文明之星事迹材料
2014/05/09 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
房产公证书样本
2015/01/23 职场文书
介绍信范文
2015/01/31 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server