2014-02-27 58 views
0

您好我看到这行代码如何定义一个实例在JavaScript

CtvDfpAd.GetInstance = function() { 
    if (!CtvDfpAd.__instance) { 
     CtvDfpAd.__instance = new CtvDfpAd(); 
    } 

    return CtvDfpAd.__instance; 
}; 

是“实例”在JavaScript中的关键词?我在网上搜索,我不相信它,有人可以解释吗?

感谢

+2

'__instance'是CtvDfpAd上的一个属性。 –

+0

耶稣!我想我找到了一个新的关键字!大声笑。 +1让我笑;) – leaf

回答

3

不,__instance不是关键字。由于JavaScript没有私有变量的概念,所以双下划线前缀似乎是将成员变量视为私有的惯例。

此代码是JavaScript中Singleton模式的实现。单例类意味着它被设计为在程序的整个生命周期中只有一个实例。该函数检查实例是否存在 - 如果存在,则返回该实例。否则,它创建一个并返回新实例。

+0

'______ suchacoolnameforaproperty'也有效@doglin :) – leaf

1

instanceof是在JavaScript中的关键字。除此之外,它是面向对象编程中的一个技术术语。您发布的代码使用常见模式来实例化对象

1

看起来实例只是该CtvDfpAd对象的受保护属性。看起来它可能基于该模式的单展示位置:

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#singletonpatternjavascript

你几乎肯定会得到一个什么样的代码是通过阅读这篇文章做一个更好的主意,但总之,这是什么码正在做:

  • 如果已经有一个我们的单例的实例,返回它。
  • 否则创建此对象的新实例并返回该实例。
相关问题