详解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 相关文章推荐
图标线性回归斜着移动到指定的位置
Aug 16 Javascript
网页广告中JS代码的信息监听示例
Apr 02 Javascript
js实现用户注册协议倒计时的方法
Jan 21 Javascript
谈谈对offsetleft兼容性的理解
Nov 11 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 17 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
Jan 20 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
vue中移动端调取本地的复制的文本方式
Jul 18 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 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代码
2010/08/08 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
jQuery查询数据返回object和字符串影响原因是什么
2013/08/09 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
javascript动画系列之模拟滚动条
2016/12/13 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
详解Vue源码学习之callHook钩子函数
2018/07/25 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
JS栈stack类的实现与使用方法示例
2019/01/31 Javascript
浅谈js闭包理解
2019/03/28 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
Python模块学习 datetime介绍
2012/08/27 Python
Python中的作用域规则详解
2015/01/30 Python
在Python中进行自动化单元测试的教程
2015/04/15 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python常见字典内建函数用法示例
2018/05/14 Python
Python多继承原理与用法示例
2018/08/23 Python
对python:threading.Thread类的使用方法详解
2019/01/31 Python
python实现一个简单的udp通信的示例代码
2019/02/01 Python
pycharm创建一个python包方法图解
2019/04/10 Python
使用TensorFlow实现简单线性回归模型
2019/07/19 Python
python mysql断开重连的实现方法
2019/07/26 Python
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
初三政治教学反思
2014/01/30 职场文书
大学生年度个人总结
2015/02/15 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
详解jQuery的核心函数和事件处理
2022/02/18 jQuery