当前位置: 网学 > 编程文档 > Ajax > 正文

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/07/10

以下是网学网为您推荐的Ajax-[ASP.NET AJAX]Function对象及Type类的方法介绍,希望本篇文章对您学习有所帮助。

上一回我们从总体上认识了JavaScript Microsoft AJAX Library由于临时有事,没有加入事例显得有点抽象,这一回一定会通过一些事例更加直观的来会一会Asp.NET Ajax脚本库中一个很是重要的类Type。这个类提供了一些扩展面向对象编程的一些反射方法,通过这个类我们可以注册类似.NET中的一些(如:命名空间,类,枚举等等)基本类型。这个Type类继承自window是一个Global类型,不属于任何命名空间。下面我们来看看Type中的一些基本方法以及是怎样实一些方法的实现方式...

在认识Type类之前,我们首先要来看一看一个很重要的对象,那就是Function对象。Function对象是JavaScript的内部对象,例如:日期对象(Date),数组对象(Array),字符对象(String)以及(Object,RegExp,Math,Error等)都属于这种,可以通过new来实例化一个对象。除了我们常见的JavaScript申明的函数,我们也可以用以下的方法构建我们的函数对象:var myFunction=new Function(arguments,statement)。由于我对脚本不是很熟悉,对prototype(不过听说是通过给出一个原型对象来指明所要创建的对象的类型,然后用这个原型对象的方法创建出更多同类型的对象,原始模型模式属于对象的创建模式)也不是很了解,不过经过我简单的测试了一下,如果对Function进行prototype扩展可以通过new来申明对象后再引用他,也可以直接调用Function.(方法或函数)。如果直接运用Function.uName来扩展这个uName就只能通过Function.uName调用,这让我想起了.NET中的静态方法(C#:static;VB:share),有了这些我们来看看Asp.NET Ajax中对Function扩展的几个对象:
复制代码 代码如下:
 Function.__typeName="Function"; 
 Function.createCallback=function(b,a){ 
   return function(){ 
    var e=arguments.length; 
    if(e>0){ 
      var d=[]; 
      for(var c=0;c<e;c++) 
        d[c]=arguments[c]; 
      d[e]=a; 
      return b.apply(this,d) 
     } 
     return b.call(this,a) 
   } 
 }; 
  Function.createDelegate=function(a,b){ 
    return function(){ 
      return b.apply(a,arguments) 
    } 
 }; 
 Function.emptyFunction=Function.emptyMethod=function(){}; 
从上面我们可以看出Function扩展了一个属性(__typeName)和几个方法(我们可以把它看成.NET中的静态对象来调用,如果用new Function();再来调用就会得到"undefined";可能这是JavaScript最基本的东西,但是我以前没有用过这种对象来写过脚本,也没有系统的学过JavaScript,所以不要笑话我哦:)正在学习中...),在上面我还发现了一个比较少见的call/apply;网上搜了一下发现在<<全面理解javascript的caller,callee,call,apply概念>>有比较详细的介绍。如果我没猜错的话:Function.createCallback("callback method","callback argument")和回调有关;Function.createDelegate("object通常用this","执行的方法"),即通过Function.createDelegate创建的代理方法继承了b方法,
  • 下一篇资讯: 163 AJAX Tab
  • 网学推荐

    免费论文

    原创论文

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号