远离它的构造函数创建新的对象实例

时间:2015-07-18 23:45:43

标签: javascript object constructor instance

所以我不想在没有用户刷新客户端的情况下预览一些UI效果。我想通过创建一个使用简单构造函数定义的Anim对象的新实例来实现这一点。

function Anim(elem) {
  this.elem = elem
}

Amin.prototype.zoomIn = function() {
 // Do stuff
},

Amin.prototype.zoomOut = function() {
 // Do stuff
}

// obj is a jQuery object, like $('div');
var instance = new Anim(obj);

到目前为止一切顺利,但是如何创建一个远离它构造函数的对象的新实例?

这是一个不同的文件,试图创建一个新实例只是为了向用户预览它。我收到一条错误告诉我:

  

Anim未定义

我认为它超出范围,但我如何使其可用?

$('span').on('click', function() {
    new Anim( $('div') );
});

1 个答案:

答案 0 :(得分:1)

此处最好的方法是将您的define(function(){ var Anim = function(elem) { this.elem = elem; this.zoomIn = function() { // Do stuff }; this.zoomOut = function() { // Do stuff } } return Anim; }); 对象定义为模块,查看 AMD (Asynchronus Module Definition) ,然后您可以在任何地方导入我们的js文件并使用新的对象的实例:

Anim.js

将其置于文件中Anim

然后只需将此文件包含在HTML页面或任何其他JS文件中,并创建define([pathToyourFile.Anim],function(Anim){ $('span').on('click', function() { var instance = new Anim( $('div') ); }); }); 对象的新实例:

{{1}}

有关 AMD模块的更多信息,请查看: