首页 > 其他分享 >在构造函数里面,如果不写return的话默认就是返回创建的实例对象

在构造函数里面,如果不写return的话默认就是返回创建的实例对象

时间:2023-11-11 18:22:05浏览次数:32  
标签:返回 return 对象 rules 实例 不写 构造函数

如果以下程序的输出结果是false,则①式可以替换为()

const test = {
  rules: false
};
function Build() {
    this.rules = true;
        ①
}
const build = new Build();
console.log(build.rules);

A
return false;
B
return this.rules;
C
return test;
D
什么都不做

正确答案:C

如果构造函数有返回值且返回值为一个对象,则由构造函数创建的实例对象即为返回的对象;
如果返回的是一个基本数据类型或者返回this,或者没有返回值,则默认返回由该构造函数创建的实例对象。

在本题中,只有C选项会使得构造函数返回的是test对象,其他选项会使得构造函数返回的都是由构造函数创建的实例。
由于test对象的rules属性值为false,而构造函数创建的实例,其rules属性值为true,故只有C选项正确。

1、在构造函数里面,如果不写return的话默认就是返回创建的实例对象。

2、在构造函数里面,如果写了return的话,

       1)如果return的是一个基本数据类型的话比如,boolean,number,undefined等那么仍然返回实例对象;  

       2)如果return的是一个对象的话,则返回该对象。原本的指向实例对象的this会被无效化。  

情况一:return false (return基本数据类型,仍然返回实例化对象)

情况二:return this.rules (return基本数据类型,仍然返回实例化对象)

情况三:return test (return对象test,返回对象test)

情况四:什么都不做 (不写return,默认返回创建的实例对象。)

在构造函数里面,如果不写return的话默认就是返回创建的实例对象,
但是如果加入了return的话,如果return的是一个基本数据类型的话比如,boolean,number,undefined等那么仍然返回实例对象,
如果返回的是一个对象的话,则返回该对象,原本的指向实际对象的this会被无效化。

标签:返回,return,对象,rules,实例,不写,构造函数
From: https://www.cnblogs.com/longmo666/p/17826168.html

相关文章

  • new方法返回的是构造函数的prototype也就是一个对象
    请问以下JS代码的输出是什么?letA=function(){}A.prototype.a=1;letB=newA();A.prototype={b:2,c:3}letC=newA();A.prototype.d=4;console.log(B.a);console.log(B.b);console.log(C.c);console.log(C.d);1、undefined、3、4首先需......
  • Java中关于try...catch的return规则
    本部分针对有return要求的异常捕获和处理,具体的,try...catch语句存在于方法体中。方法体中的try...catch的return总共有四种可能的地方:try,catch,finally,方法体末尾(try…catch外)。共存规则finally中的return和方法return不能同时存在。(显而易见的第一法则!)try中的return......
  • js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继
    js常见的继承方式包括原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承,以及ES6新增的class继承,但不包括关联继承https://www.cnblogs.com/Leophen/p/11401734.html构造函数继承是每次继承都会把父类的所有属性方法全部拷贝一份,而对于公用的方法......
  • new是以Date为构造函数产生对象的,Date()是直接调用了构造函数。控制台在输出日期对象
    Date()//输出:(字符串)'WedSep21202216:53:16GMT+0800(中国标准时间)'newDate()//输出:WedSep21202216:53:23GMT+0800(中国标准时间)new是以Date为构造函数产生对象的,Date()是直接调用了构造函数。控制台在输出日期对象时调用了tostring......
  • C++中虚继承时的构造函数
    在虚继承中,虚基类是由最终的派生类初始化的,换句话说,最终派生类的构造函数必须要调用虚基类的构造函数。对最终的派生类来说,虚基类是间接基类,而不是直接基类。这跟普通继承不同,在普通继承中,派生类构造函数中只能调用直接基类的构造函数,不能调用间接基类的。下面我们以菱形继承为例来......
  • 无涯教程-批处理 - Functions with Return Values函数
    函数可以通过简单地传递变量名称来使用返回值,这些变量名称将在调用函数时保存返回值,如下所示Call:function_namevalue1,value2…valuen使用set命令和tilde(〜)字符以及参数的位置编号在函数中设置返回值。下面的示例演示如何使用返回值调用函数。@echooffSETLOCALCALL......
  • Java中用引号创建String对象和用构造函数的区别
    创建一个String对象一般有以下两种方式:Stringstr1="abcd";Stringstr2=newString("abcd");这两种方式有什么区别呢?我们可以通过下面两个小例子来说明.Example1:Stringa="abcd";Stringb="abcd";System.out.println(a==b);//True......
  • 函数如果没有return语句,则默认return undefined
    函数如果没有return语句,则默认returnundefined考点:undefined隐式转换成Number类型值是啥1)Number(undefined)结果是NaN,所以NaN+1=NaN2)Number(null)结果是03)Number('a')结果是NaNNumber('')结果是0Number(true)结果是1Number(false)结果是0Number([])结果是0......
  • 每个构造函数都有个propotype属性,每个实例化对象都有个隐式原型__propo__,对象的隐式原
    每个构造函数都有个propotype属性,每个实例化对象都有个隐式原型__propo__,对象的隐式原型指向其构造函数的显示原型所有的引用类型(数组,对象,函数),都有__proto__属性,属性值是一个普通的对象对象分为函数对象和普通对象,只有函数对象是有prototype的,object.__proto__也有prototype,但它......
  • OpenCV 最容易传错参数的两组Mat构造函数
    Mat构造函数中有两组函数传参特别容易传错,分别是:publicMat(introws,intcols,MatTypetype)publicMat(OpenCvSharp.Sizesize,MatTypetype)稍不注意,我们会认为下面两个mat尺寸相等,varm1=newMat(10,20,MatType.CV_8UC1);varm2=newMat(newOpenCvSharp.Size......