Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
钛工作室内的javascript:';新';在对象中_Javascript_Titanium_New Operator - Fatal编程技术网

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

钛工作室内的javascript:';新';在对象中,javascript,titanium,new-operator,Javascript,Titanium,New Operator,我在非浏览器环境(Titanium Studio)中有以下代码,我注意到result1和result2都工作,返回相同的结果,并且是相同的类型(对象) 你能解释一下它们在任何方面是否不同,以及它们是如何不同的吗 在我的例子name1中,没有对本地上下文的引用(这里没有“this”,只有本地变量),我试图弄清楚当我遇到下面这样的情况时,我是否应该使用“new”编写所有代码 var name1 = function(some_arg){ // some stuff return re

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

你能解释一下它们在任何方面是否不同,以及它们是如何不同的吗

在我的例子name1中,没有对本地上下文的引用(这里没有“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;

谢谢

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

太好了。谢谢如果我将函数用作构造函数,那么:var name=function(){}与:function name(){}相同吗?谢谢。不,这只是将函数赋给一个变量,非常类似于
函数名(){}
(除了被提升到作用域的顶部)-将函数用作构造函数意味着用
新的
调用它。对不起,我现在有点困惑。我将重新措辞这个问题。。。我在上面的原始问题中添加了另一段代码(新代码在粗体编辑注释下面)。因此上面的version1.name和version2.name都返回“joey”。他们有什么不同吗?如果是,怎么做?谢谢它们有不同的构造函数。很像两个不同的类,它们除了类名之外是相同的。