在Javascript中,任何合法的
函数都可以用作对象的构造函数,其中包括
系统的内置函数,以及
用户自己定义的函数。
一般
情况下,构造函数没有返回值,并且只初始化传入的this指针的对象,而没有任何回报。如果一个函数有一个返回值,返回的对象成为新的表达式的值。在形式上,一个函数是构造函数和普通函数的唯一
区别,是否新的算子。
上面的描述实际上有一个更确切的含义。如果有一个返回值分为两种情况,那么函数的划分是必要的:函数的返回值是引用
类型和值类型。
如果一个函数的返回值是一个引用类型(数组,对象或函数)的数据,那么这个函数作为
执行结构使用新的
操作符构造函数,结果将返回值
替换,此时构造函数体丢失这个值,这是返回的对象:
复制代码代码如下所示:
功能测试()
{
这个= 10;
返回函数()
{
返回1;
}
}
警报M =新测试();
var =测试();
警报(m);返回
关闭结束返回
警报(n);返回关闭结束返回
运行结果m的值与n的值相同,测试函数返回的所有闭包以及该对象的赋值和赋值结果。a = 10都被该引用丢弃。
如果一个函数的返回值是一个值类型,这个函数被构造为使用新操作符的构造函数,它的返回值将被丢弃。新表达式的结果仍然是这个引用的对象。
复制代码代码如下所示:
功能测试()
{
这个= 10;
返回1;
}
警报M =新测试();
var =测试();
警报(m)返回{对象}
警报(n)1。