带有返回自定义对象的函数的Javascript“新”

Posted

技术标签:

【中文标题】带有返回自定义对象的函数的Javascript“新”【英文标题】:Javascript 'new' with function returning self-defined object [duplicate] 【发布时间】:2013-01-22 17:29:25 【问题描述】:

假设我有以下功能:

var A = function() 
   var label = "hello";
   return 
      getLabel: function()  return label; 
   
;

两者有什么区别:

var a = A();

var a = new A();

?

注意:我不是在这里问what is the 'new' keyword in javascript,而是在这个特定示例中它的行为方式。

【问题讨论】:

见***.com/questions/1646698/… 请通过这个***.com/questions/1646698/… 是的,我已经读过了。我只是想知道这个特定示例是否有任何区别 @fmsf 问题是关于给定示例的,这就是为什么我发布它尽管存在***.com/questions/1646698/… @GhoulFool 询问new 事物在特定情况下的应用是否无关紧要? 【参考方案1】:

在您的特定情况下,,没有区别。

无论哪种方式,您的函数都会返回一个自定义对象。通过使用 new 关键字调用函数,ECMAscript 将自动为您创建一个新对象(同时使用 prototypeconstructor 属性做一些魔术),您可以访问 / function (-constructor) 内通过this 写信给

同样,您在该函数中的 return 调用将始终准确返回该对象引用。

【讨论】:

+1 - 此处重要的示例:jsfiddle.net/9Xcbr

以上是关于带有返回自定义对象的函数的Javascript“新”的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 对象

javascript中new运算符

JavaScript对象

JS内置对象-String对象Date日期对象Array数组对象Math对象

JavaScript ----------------- 原型式继承

JavaScript内置对象