gpt4 book ai didi

javascript - 构造函数返回什么?

转载 作者:行者123 更新时间:2023-12-03 03:26:17 27 4
gpt4 key购买 nike

如果我在构造函数中返回某个值或对象,var 会得到什么?

function MyConstroctor()
{
//what in case when return 5;
//what in case when return someObject;
}

var n = new MyConstroctor();

在这两种情况下n会得到什么?

其实这是一道问答题,答案是什么?
自定义对象构造函数返回什么?
a)新实例化的对象
b)undefined - 构造函数不返回值
c)无论返回语句是什么
d) 无论返回语句是什么;如果没有 return 语句则为新实例化的对象

最佳答案

简短回答

构造函数返回 this 对象。

function Car() {
this.num_wheels = 4;
}

// car = { num_wheels:4 };
var car = new Car();

长答案

根据 Javascript 规范,当使用 new 调用函数时,Javascript 会创建一个新对象,然后将该对象的“构造函数”属性设置为调用的函数,最后将该对象分配给名称。然后,您可以从函数主体访问 this 对象。

一旦函数体被执行,Javascript将返回:

任何对象(如果返回值的类型为object):

function Car(){
this.num_wheels = 4;
return { num_wheels:37 };
}

var car = new Car();
alert(car.num_wheels); // 37

如果函数没有 return 语句,或者如果函数返回 object 以外的类型的值,则为 this 对象:

function Car() {
this.num_wheels = 4;
return 'VROOM';
}

var car = new Car();
alert(car.num_wheels); // 4
alert(Car()); // No 'new', so the alert will show 'VROOM'

关于javascript - 构造函数返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3350215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com