js 构造函数中的 return
本文链接:https://blog.csdn.net/qq_36209248/article/details/89190978
默认情况下,没有return的函数的返回值为undefined(即没有定义返回值),如果定义了return,则返回指定对象。
但是构造函数比较t特殊,new构造函数在没有return的情况下默认返回新创建的对象。在有return的情况下,需要分为两个情况考虑:
如果返回值为基本数据类型(string,number,boolean,undefined,null),那么返回值为新建对象实例,即this。
var a = function S(){
this.x=3;
return 1;
}
var b = new a();
console.log(a); //{x:3}
如果返回值为一个非基本数据类型的对象,函数的返回值为指定的对象,this值所引用的对象被丢弃。
var a = function S(){
this.x=3;
return a;
}
var b = new a();
console.log(b); //S(){this.x=3;return a }
直观的例子:
var a = function User( name, age){
this.name = name;
this.age = age;
// return; // 返回 this
// return null; // 返回 this
// return this; // 返回 this
// return true; // 返回 this
// return 'string'; // 返回 this
// return 1; // 返回 this
// 以上都返回{name:"哈哈",age:18}
// return []; // 返回 新建的 []
// return function(){}; // 返回 新建的 function,抛弃 this
// return new Boolean( false); // 返回 新建的 boolean,抛弃 this
// return new String( 'hello world'); // 返回 新建的 string,抛弃 this
// return new Number( 32); // 返回新的 number,抛弃 this
}
var b=new a("哈哈",18)
console.log(b);
主要是JS——new与return里的内容,自己做了一点整理,以便以后自己回顾。
————————————————
版权声明:本文为CSDN博主「还缺个男朋友」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36209248/article/details/89190978
js 构造函数中的 return的更多相关文章
- 怎样理解构造函数中的return语句
因为构造函数也是一个函数, 自然也可以有return语句, 不过和一般函数不太一样的是, 在构造函数中如果return的是一个对象, 则会直接返回这个对象, 如果return 的不是一个对象, 那在n ...
- js 函数中的 return+匿名函数
今天一个刚学js的朋友给了我一段代码问为什么方法不执行,代码如下: 代码如下: function makefunc(x) { return function (){ return x; } } ...
- a链接的onclick与js中的return false
在学习<javascript基础教程>第八版时,有一个小细节开始不是很明白,查了一些资料后,理了一下思路. 例子的html代码: <!DOCTYPE html> <htm ...
- 探索js原型链和vue构造函数中的奥妙
这篇文章首先会讲到原型链以及原型链的一些概念,然后会通过分析vue的源码,来看一下vue的构造函数是如何被创建的,now we go! 一.什么是原型链? 简单回顾下构造函数,原型和实例的关系: ...
- JS构造函数中有return
function foo(name) { this.name = name; return name } console.log(new foo('光何')) function bar(name) { ...
- js中的 return false;
总的来说return false 的作用就是阻止事件的默认行为 1. function check() { if(form.title.value=="") { alert(&qu ...
- 构造函数中this,return的详解
function Foo(name,age){ this.name=name; this.age=age; } var foo=new Foo("Tom",14); foo.nam ...
- 深入研究js构造函数和原型
很快就要从新浪离职了,最近心情比较轻松,抽点空整理一下构造函数和原型的机理. 我们都知道,在经典设计模式中我们最常用的就是工厂模式.构造函数模式.原型模式这几种,听起来‘模式’好像很高大上的样子,实际 ...
- JS 正则表达式中的特殊字符
正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...
随机推荐
- Druid-代码段-1-4
所属文章:池化技术(一)Druid是如何管理数据库连接的? 本代码段对应流程1.3,连接可用性测试: //数据库连接可用性测试 protected boolean testConnectionInte ...
- MATLAB实例:Munkres指派算法
MATLAB实例:Munkres指派算法 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 指派问题陈述 指派问题涉及将机器分配给任务,将工人分配给 ...
- jQuery 源码分析(十七) 事件系统模块 实例方法和便捷方法 详解
实例方法和便捷方法是指jQuery可以直接通过链接操作的方法,是通过调用$.event上的方法(上一节介绍的底层方法)来实现的,常用的如下: on(types,selector,data,fn,one ...
- PHP获取网址详情页的内容导出到WORD文件
亲自测试效果一般, css的样式文件获取不到 如果没有特殊的样式 或者是内容里面包括样式的 直接输出有样式的内容 然后导出 这样还是可以的 class word { function start ...
- c# winform 窗体失去焦点关闭(钩子实现)
先来一个辅助类 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Inte ...
- AllowsTransparency="True" 怎么放大缩小窗体
后台都不用写任何代码! xaml: <Window x:Class="TestNoBorderWindow" xmlns="http://schem ...
- Python中的函数参数有冒号 声明后有-> 箭头
在python3.7 环境下 函数声明时能在参数后加冒号,如图: def f(ham: str, eggs: str = 'eggs') -> str : print("Annotat ...
- DataGridView中在新增行时怎样设置每个Cell单元格的字体样式
场景 DataGridView怎样实现添加.删除.上移.下移一行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10281414 ...
- 1G内存VPS安装 mysql5.6 经常挂
背景介绍 去年3月份的时候参加了腾讯云主机活动,5年362,非常优惠.当时的想法是买来可以瞎整一波,虽然配置不高,但是搞点事情也够用. 配置如下,上海机房 1 核 1 GB 1 Mbps 系统盘:普通 ...
- CDN(Content Delivery Network)原理
CDN即内容分发网络,一般包括分发服务系统,负载均衡系统和管理系统. 分发服务系统,其基本的工作单元就是各个cache服务器.负责直接响应用户请求,将内容快速分发到用户:同时还负责内容更新,保证和源站 ...