检查是否已实例化JavaScript对象

检查是否已实例化JavaScript对象,javascript,object,Javascript,Object,我正在开发一个小游戏,我实例化了一些对象,如下所示: this.polyfills = new Application.Polyfills(this.options); 问题是,这段代码在点击(页面上的某个元素)时被多次调用,我不想每次都实例化该对象,因为它已经实现了它的目的。我试过这样的方法: this.polyfills = window.Application.Polyfills || new Application.Polyfills(this.options); 但是上面提到的显然

我正在开发一个小游戏,我实例化了一些对象,如下所示:

this.polyfills = new Application.Polyfills(this.options);
问题是,这段代码在点击(页面上的某个元素)时被多次调用,我不想每次都实例化该对象,因为它已经实现了它的目的。我试过这样的方法:

this.polyfills = window.Application.Polyfills || new Application.Polyfills(this.options);
但是上面提到的显然是行不通的:)那么,我们应该怎么做,去做我刚才描述的事情呢

编辑:单击时实例化的对象(我称之为类)如下所示:

Application.Level = function(_level, _levels, callback) {

    this.helpers = (this.helpers instanceof Application.Helpers) ? true : new Application.Helpers();

    var self = this,

        _options = {
            levels : {
                count : _levels,
                settings : (_level === undefined || _level === '') ? null : self.setLevelSettings(_level, _levels),
                template : 'templates/levels.php'
            },

            api : {
                getImages : {
                    service : 'api/get-images.php',
                    directory : 'assets/img/'
                }
            }
        };

    this.options = new Application.Defaults(_options);
    this.polyfills = (this.polyfills instanceof Application.Polyfills) ? true : new Application.Polyfills(this.options);

    return this.getImages(self.options.api.getImages.service, { url : self.options.api.getImages.directory }, function(data){
        return (typeof callback === 'function' && callback !== undefined) ? callback.apply( callback, [ data, self.options, self.helpers ] ) : 'Argument : Invalid [ Function Required ]';
    });
};
它包含通过
原型定义的属性集合。所以我想做的可能不可能

怎么样

this.polyfills = this.polyfills || new Application.Polyfills(this.options);
使用instanceof:

this.polyfills = this.polyfills instanceof Application.Polyfills ? this.polyfills : new Application.Polyfills(this.options)

这将验证它不仅是一个对象,而且是一个应用程序。Polyfills实例化。

我使用了以下简单的方法:

if(typeof myClass.prototype==“未定义”){
//该类已实例化
}
请查看工作示例


我喜欢它,因为它不依赖于调用的上下文。

我尝试了这个,但显然每次单击时都会创建该对象的新实例。我在想,我可以通过某种方式全局检查该对象是否已实例化?!在你的语境中,“这”是什么?如果这种情况发生变化,那么它将导致另一个实例化。如果你想确保它不会被实例化多次,你可以把If放在你的构造函数中,让polyfills成为一个全局变量,让构造函数返回polyfills变量。