javascript 关于函数的返回值

本文深入探讨了JavaScript中函数调用的不同方式及其返回内容的区别:以函数形式调用、使用new操作符调用、以及通过call和apply调用。详细解释了每种调用方式下函数返回值的类型变化,并通过实例展示了如何在函数中正确使用return语句以获取预期的返回值。

在javascript中根据调用方式的不同返回的内容也不同

1.  以函数的形式调用

当以函数的形式调用时, 返回值和函数定义时的 ruturn 有关, return的是数字就number类型, return字符串就是string类型, return 一个函数就得到Function类型, 总之return什么就得到什么.

 

2. 以new操作符调用函数

function A() {
    this.name = "Tom";
    this.age = 23;
}
var a = new A();

这是典型的创建对象的方式, 但如果给这个A函数添加一个return 会是什么结果呢? 这里给出两种特殊的情况, 1.返回一个对象,  2. 返回一个 函数

function A() {
    this.name = "";
    return {
        age:23
    };
}
var a = new A();

这里的a.constructor是Object 说明他是通过 return 得到值的, 而不是通过new 得到的. 因为通过new得到的话 a.constructor 是 A

function A() {
    this.name = "";
    return function () { }
}
var a = new A();

这里的a是function类型, 而不是objiect 类型.说明new 也没有起到作用.

 

3. 以call 和 apply 的方式调用

这种方式的调用结果和以函数的形式调用的结果一样.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值