• Prototype1.5.1源代码解读分析2


    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>
    语法

    这段代码用到的语法:

    什么是对象?对象是一种复合数据类型,他们将多个数据值集中在一个单元中,而且允许使用名字来存取这些值。解释对象的另一种方式是,对象是一个无序的属性集合,每个属性都有自己的名字和值。存储在对象中的已命名的值既可以是数字和字符串这样的原始值,也可以是对象。Javascript对象本质上一个化装了的关联数组,由以名字作为键的字段和方法组成。对象是由运算符new创建的。在这个运算符之后必须有用于初始化对象的构造函数名。创建一个新的javascript对象的最简单的方法是调用object内建的构造函数:

    var myObject=new Object;

    使用JSON.JSON是语言的一个核心特征,他提供了一种创建数组和对象图(object graph)的简单机制。为了理解JSON,需要知道javascript是如何工作的。我们首先来讨论一些关于他们的基础知识。Javascript有一个内建的array类,可以使用new关键字初始化:

    var book=new Array();

    数组有按照数字来分配的值,就像C和JAVA的数组一样:

    book[4]=”100个感动中国的自考人”

    数组也可以使用一个健值来关联,就像JAVA的map一样。实际上这可以用于任何javascript对象:

    book[“BestSeller”]=”100个感动中国的自考人”

    创建一个数字索引的数组的快捷方法是使用方括号,将所有的成员写成一个用用逗号分隔的值的列表,就像这样:

    book=[“ajax基础”,”ajax实战”,”ajax黑客”]

    为了创建javascript对象,我们将对象属性说明放在大括号中,其中的属性说明由逗号隔开。对象直接量中每个属性说明都由属性名加上冒号和属性值构成。例如:

    book={

    BestSeller:”100个感动中国的自考人”,

    cookbook:”湘菜烹制大全”

    }

    函数直接量是用关键字function后加可选的函数名、用括号括起来的参数列表和用花括号括起来的函数体定义的。简言之,函数直接量看起来就像个函数定义,只不过没有函数名。他们之间最大的差别是函数直接量可以出现在其他javascript表达式中。例如:

    var square=function(x){return x*x}

    代码解析及其使用方法

    下面我们来解析prototype第一段代码。好长的一段代码,为了便于理解,让我们把这段代码简化一下----略去其中的部分细节:

    var Prototype = {

      Version: '1.5.1',

      Browser: {

       值

      },

      BrowserFeatures: {

       值

      },

      ScriptFragment: '<script[^>]*>([\u0001-\uFFFF]*?)</script>',

      JSONFilter: /^\/\*-secure-\s*(.*)\s*\*\/\s*$/,

      emptyFunction: function() { },

      K: function(x) { return x }

    }

    这段代码的意思就是创建了一个名字为Prototype的对象。该对象有七个属性:Version, Browser,BrowserFeatures,ScriptFragment,JSONFilter,emptyFunction,K

    Version

    Version(版本)属性的值为“1.5.1”,表示当前版本是1.5.1。

    Browser

    Browser属性的值是一个对象。该对象是:

    {

        IE:     !!(window.attachEvent && !window.opera),

        Opera:  !!window.opera,

        WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,

        Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1

      }

    作用是嗅探当前使用的所使用的浏览器。让我们来看看在prototypeAPI文档(下文简称文档)是怎样描述该属性的:

    Detects the current browser and returns an object

    Possible Tests:

    Prototype.Browser.IE

    Prototype.Browser.Opera

    Prototype.Browser.WebKit // Safari

    Prototype.Browser.Gecko  

    Examples

      

    In case you are viewing in Mozilla:  

    Prototype.Browser

    //-> Object: IE=false Opera=false WebKit=false Gecko=true

    if(Prototype.Browser.Gecko) {

       alert("It's a Gecko!")

    }

    译文:

    作用:探测当前的浏览器并返回一个对象

    允许的测试:

    Prototype.Browser.IE

    Prototype.Browser.Opera

    Prototype.Browser.WebKit // Safari

    Prototype.Browser.Gecko  

    例子

    万一你正在观察Mozilla浏览器

    Prototype.Browser

    //-> 对象: IE=false Opera=false WebKit=false Gecko=true

    if(Prototype.Browser.Gecko) {

       alert("It's a Gecko!")

    }

  • 相关阅读:
    发呆发呆发呆发呆发呆发呆发
    大众捷达看想吃 v 觉得分开才相聚离开都出现
    yjggj
    test4
    test3
    test2
    test1
    Java并发之线程池ThreadPoolExecutor源码分析学习
    Java并发之AQS同步器学习
    ThreadLocal和ThreadLocalMap源码分析
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912306.html
Copyright © 2020-2023  润新知