小编Mar*_*in 的帖子

使用原型时的Javascript继承问题 - 实例被覆盖:(

我是JavaScript编程的新手,我对继承有点噩梦.我正在为Appcelerator Titanium编写一些代码,我有一个名为Slide2D的基类,我希望继承它.

所以我在Slide2D的原型中放了一些函数.这些通常不会被覆盖,但会从Slide2D派生的类中调用.这些函数也将从程序的其他部分调用.还有各种用于在Titanium中管理动画的事件处理程序.

如果我在一些调用代码中制作了几个幻灯片(使用新的)

var s = new Slide2D('slide1', 'background1.png', etc......
var t = new Slide2D('slide2', 'background2.png', etc......
Run Code Online (Sandbox Code Playgroud)

我的所有原型方法都指向最后创建的Slide2D,无论我是使用s还是t.因此即使我使用的是s变量,也会始终显示'slide2'.

这让我很生气 - 任何帮助都会非常感激.

对不起代码的长度,但这里是:

function Slide2D(name, backgroundImage, transform, inAnimation, outAnimation)
{
Titanium.API.info('Slide2D - Constructor - ' + name);

var _self = this;

var _name = name;

var _backgroundImage = backgroundImage;

var _startingTransform = transform;

var _slideView = Titanium.UI.createView({
    backgroundImage: _backgroundImage,
    transform: transform
});

    var _animateInAnimation = Titanium.UI.createAnimation();
_animateInAnimation.transform = Titanium.UI.create2DMatrix().translate(0,0);
_animateInAnimation.duration = 750;

var _animateOutAnimation = Titanium.UI.createAnimation();
_animateOutAnimation.transform = Titanium.UI.create2DMatrix().translate(-1024,0);
_animateOutAnimation.duration …
Run Code Online (Sandbox Code Playgroud)

javascript prototype class appcelerator prototypal-inheritance

6
推荐指数
1
解决办法
1452
查看次数