zoukankan      html  css  js  c++  java
  • 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!")

    }

  • 相关阅读:
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 回形取数
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    Java实现 蓝桥杯VIP 基础练习 报时助手
    block的是发送信号的线程,又不是处理槽函数的线程
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912306.html
Copyright © 2011-2022 走看看