[ASP.NET AJAX]Function对象及Type类的方法介绍

2019-09-14 07:30:12丽君


Type对象继承了Function对象,由Function对象进一步延伸,在这里我们就不讨论Type地实现过程,我们今天主要来看看Type中的一些重要的方法。Type中总共有22个方法,下面我们将逐个进行介绍:

.[prototype]Type.callBaseMethod(instance,name,baseArguments)
说明:
   这个函数主要调用基函数中的方法,相当于C#中的base;这个函数只有在继承函数时才会用到。
参数:
   instance:将要被调用的基函数的当前实例,通常用this;
   name:将要被调用的基函数的名称,用字符串表示;
   baseArguments:将要被调用的基函数的参数。

.[prototype]Type.getBaseMethod(instance,name)
说明:
   引用基函数的方法实例,如果你要通过Function.call函数来调用一个方法,这将是你的选择;不过我觉得和上一个函数的差别不是特别大,糊涂了。
参数:
   instance:在这个函数中好像没有被调用,上一个函数的实现是通过这个函数来获取函数的,可能这个参数是为1中的instance参数预留的,我也搞不懂他们为什么这样干,高手自由高手的道理吧!
   name:当然是所要引用的方法的名称。

.[prototype]Type.getBaseType()
说明:
    其实就是返回"typeof this.__baseType"的值,如果是"undefined"则返回null。

.[prototype]Type.getInterfaces()
说明:
    通过这个可以获取当前实例所实现的接口对象数组,为一个Array对象。

.[prototype]Type.getName()
说明:
    返回当前对象的名称,包括命名空间和类名称,如果为"undefined"返回""。

.[prototype]Type.implementsInterface(interfaceType)
说明:
    如果当前类已经实现了interfaceType接口中的所有定义,则返回true,否则返回false。这也就可以实现在.NET中继承借口必须实现所有方法或属性的诺言:)

.[prototype]Type.inheritsFrom(parentType)
说明:
    调用此方法可以判断当前实例是否继承自parentType类,如:var isInherited=ClassA.inheritsFrom(ClassB);如果当前实例继承自parentType则返回true,否则返回false。

.[prototype]Type.initializeBase(instance, baseArguments)
说明:
    这是一个相当重要的函数,通过这个函数来初始化基函数的构造函数,也可以将自己注册为一个基函数。其中instance是初始化基类的对象,通常用this;baseArguments为基函数构造函数的参数,可以为空。

.[prototype]Type.isImplementedBy(typeInstance)
说明:
    这个和6中正好相反,用来判断typeInstance是否实现了接口中的所有定义,如果是实现返回true,否则返回false。