这段代码用到的语法:
什么是对象?对象是一种复合数据类型,他们将多个数据值集中在一个单元中,而且允许使用名字来存取这些值。解释对象的另一种方式是,对象是一个无序的属性集合,每个属性都有自己的名字和值。存储在对象中的已命名的值既可以是数字和字符串这样的原始值,也可以是对象。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
VersionVersion(版本)属性的值为“1.5.1”,表示当前版本是1.5.1。
BrowserBrowser属性的值是一个对象。该对象是:
{
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!")
}