钛工作室内的javascript:' new'在对象中

时间:2012-04-13 05:38:50

标签: javascript titanium new-operator

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

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

在我的case1里面没有对本地上下文的引用(那里没有'this',只是局部变量)而且我试图弄清楚我是否应该在有或没有'new'的情况下编写我的所有代码我有类似下面的情况。

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;

谢谢!

1 个答案:

答案 0 :(得分:2)

this在使用new时绑定到新对象,而在不使用new时绑定到全局对象。如果你没有在构造函数中使用this或你添加到对象的任何方法,它确实无关紧要 - 但是,无论如何你都应该使用它,否则如果你使用它就会遇到问题