0

我在非浏览器环境(Titanium Studio)中有以下代码,我注意到 result1 和 result2 都可以工作,返回相同的结果,并且是相同的类型(对象)。

您能否解释一下它们是否有任何不同以及它们有何不同?

在我的情况下,在 name1 中没有对本地上下文的引用(那里没有“this”,只有局部变量),我试图弄清楚当我有一个像下面这样的情况。

var name1 = function(some_arg){
    // some stuff
    return result; // returns an object
}

var result1 = name1('some_value');
var result2 = new name1('some_value');

typeof(result1); // returns object
typeof(result2); // returns object

谢谢!

在下面编辑:原始问题已得到解答,我现在正在寻找相关内容的澄清。

与以下评论相关的代码:

function Name1 (name){
    this.name = name;
}
var version1 = new Name1('joey');
version1.name;

var Name2 = function(name){
    this.name = name
}
var version2 = new Name2('joey');
version2.name;

谢谢!

4

1 回答 1

2

this is bound to a new object when using new while it is bound to the global object when not using new. If you do not use this in the constructor function or any methods you add to your object, it indeed does not really matter - however, you should use it anyway or you'll have a problem if you ever do use it.

于 2012-04-13T05:40:00.680 回答