我在非浏览器环境(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;
谢谢!
答案 0 :(得分:2)
this
在使用new
时绑定到新对象,而在不使用new
时绑定到全局对象。如果你没有在构造函数中使用this
或你添加到对象的任何方法,它确实无关紧要 - 但是,无论如何你都应该使用它,否则如果你使用它就会遇到问题