返回值并保留javascript对象的成员

Return value and keep members of javascript object?

本文关键字:成员 对象 javascript 保留 返回值      更新时间:2023-09-26

我正试图找出别人的代码,我真的被他们是如何做到这一点所困扰。代码很长,所以我将尝试给出一个简单的例子来说明我想要找出的东西。

我有如下内容:

var obj = function(){
this.obj1 = "test1";
this.obj2 = "test2";
};
var inst = new obj;
alert(inst);

输出[object]。我想知道怎么做,是使这个返回值"test1"代替-但也仍然使我能够调用对象成员,这样我也可以做

alert(inst.obj2);

并得到一个输出:'test2'。

我认为我可以这样做:

var obj = function(){
    this.obj1 = "test1";
    this.obj2 = "test2";
    return this.obj1;
};
var inst = new obj;
alert(inst);

但这也返回[object]

这就是我试图破译的代码似乎正在做的事情。语法要复杂得多——我认为它使用了闭包和原型,但我仍然不明白这些,所以我真的不明白发生了什么。

多谢!

要使alert显示[object Object]以外的内容,请在对象上定义.toString()方法。

function MyObj() {
    this.obj1 = "test1";
    this.obj2 = "test2";
};
MyObj.prototype.toString = function() {
    return this.obj1;
};
var inst = new MyObj();
alert(inst);   // will show "test1"