我正在尝试找出其他人的代码,我真的很困惑他们是如何设法做到这一点的.代码很长,所以我会尝试给出一个简单的例子,说明我想要找到的东西.
我有以下内容:
var obj = function(){
this.obj1 = "test1";
this.obj2 = "test2";
};
var inst = new obj;
alert(inst);
这输出[对象].我想知道怎么做,就是让这个返回值"test1"而不是 - 但仍然可以让我调用对象成员,这样我也可以做
alert(inst.obj2);
得到一个输出:'test2'.
我认为我可以这样做的方式如下:
var obj = function(){
    this.obj1 = "test1";
    this.obj2 = "test2";
    return this.obj1;
};
var inst = new obj;
alert(inst);
但这也会返回[对象]
这就是我试图解密的代码似乎正在做的事情.语法要复杂得多 - 我认为它使用闭包和原型,但我仍然没有理解这些,所以不要真正理解发生了什么.
非常感谢!
要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"