JavaScript 构造函数返回值对实例对象的影响分析

作者:半夏时间:2026-10-23 09:55:18浏览:460

本文通过三个具体代码示例,深入分析 JavaScript 构造函数中不同返回值对实例对象的影响。当构造函数无返回值或返回原始类型(如字符串)时,实例仍为构造函数创建的对象;若返回对象类型(如 String 对象),则实例变为该返回对象。理解这一机制有助于避免原型链断裂及属性丢失问题。

/*

JavaScript 构造函数返回值行为分析

参考《JavaScript 核心》第 151 页内容。


发布时间:2008-11-25


*/

具体代码实现如下:

// 情况一:构造函数没有显式返回值
function Test0(){
this.name='test0';
} 
var test0=new Test0;
//debugger;
alert(test0);// 输出 [Object]
alert(test0.name);// 输出 test0
// 情况二:构造函数返回一个字符串对象
function Test(){
this.name='test';
return new String('123');// 返回字符串对象
} 
var test=new Test();
alert(test);// 输出 123
alert(test.name);// 输出 undefined,说明有构造函数创建的对象是字符串对象
// 情况三:构造函数返回一个原始类型字符串
function Test2(){
this.name='test2';
return '123';// 返回字符串对象
} 
var test2=new Test2();
alert(test2);// 输出 [Object]
alert(test2.name);// 输出 test0
作者最新文章