您的位置:首页 > Web前端 > JavaScript

Javascript 继承中的一些问题

2008-09-01 02:28 519 查看
Javascript 的继承类问题,已经被说烂了,  其核心只有一点在 子类B()中 运行 父类A().

一个简洁的实现:

function B( arg1, arg2)//假设子类B有两个初始值,其中arg1是传递给父类A

{

   //继承A

   A.call( this, arg1 );//这里假设父类A有一个初始值

}

最近发现在函数继承有些问题,
请看下面:
假设A:

function A( arg1 )

{

    this.m1= arg1;

    this.oCap = document.getElementById(arg1);

       this.oCap.onmousedown = this.CaptureMouse(this);

}

//外部定义A的成员函数

 A.prototype.CaptureMouse = function( oThis )

 {

        return function()

        {

           oThis.oCap.setCapture(true);

        }

}

此时, A() 自身,运行良好.

但是,问题出现在当B()继承A时, 解释器无法解释CaptureMouse

可能在B()中运行A时, 解释器对A的解释是采用顺序解释方法,所以处在后面的A.prototype.CaptureMouse没有被发现,所以会有这种现象.

在改成如下代码后,

问题解决:

function A( arg1)

{

    this.m1= arg1;

    this.oCap = document.getElementById(arg1);

    //先定义函数CaptureMouse

    this.CaptureMouse = function( oThis )

    {

        return function()

        {

           oThis.oCap.setCapture(true);

        }

    }

    //再应用CaptureMouse

    this.oCap.onmousedown = this.CaptureMouse(this);

}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: