快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记娱乐和记怡情AG:Prototype使用学习手册指南之base.js



一看名字就知道Class是基类了,先说下此类的感化,然后给大年夜家细细的阐发下base.js中的代码

类的创建与承袭:

Class.create(): 创建一个类,例如 person=Class.create()

Object.extend(destination, source): 把source中措施属性copy到destination(应用for propertyin source),必要留意的是,javascript中除了基础类型(Number, Boolean)外都是引用类型,以是这种copy一样平常只是co和记娱乐和记怡情AGpy引用而已,destination和source照样指向同一个措施或工具属性(function array object)

这面向工具的编程中,一样平常经由过程Class.create新建一个类,假如这个类承袭于领一个类,一样平常应用Object.extend(class.prototype, parentClass.prot和记娱乐和记怡情AGotype)或者Object.extend(class.prototype, aparentClassInstance)

Object构造函数的扩展:

Object是其他工具实例的构造函数(var a=new Object()),也是所有其他类的父类,对Object直接扩展(留意不是扩展Object.prototype,扩展Object.prototype相称于添加实例措施)相称于为Object类添加静态措施

Object.inspect(object): 调用object的inspect(假如定义了)或toString措施,返回一个工具的字符串表示

Object.keys(object): 返回一个工具的所有属性和措施名称组成的数组, 例如Object.keys(document.body)

Object.values(object):返回一个工具的所有属性和措施的值组成的数组, 例如Object.values(docuement)

Object.clone(object): 返回一个工具的clone版本,着实是履行Object.extent措施把object中的措施属性copy到一个新工具中,然后返回这个工具

函数绑定:

定义了Function工具的两个措施,bind和bindAsEventListener,这两个措施和记娱乐和记怡情AG是一个函数的两个措施,对付java、c#法度榜样员来说,看到这个大概认为很惊疑,由于在他们看来函数只是一个法度榜样语句组织布局而已—>怎么还有措施,而且还可以扩展?

这也是javascript等脚本说话相对付java等一个异常强大年夜的功能,函数也是一个工具,函数名便是这个工具的名称,只要你乐意,你也可以应用new Function(…)来定义函数,所以为函数定义措施也就很正常不过了

这两个函数的主要感化是为了办理应用javascript面向工具风格编程中this的引用问题,在javasctipt中this关键字 始终指向调用该函数的工具或者指向应用call,apply措施指定的工具(详细这方面的常识可以自己google一下,以下系列对prototype的先容也假设读者对javascript说话对照认识了,假如不认识可以找本 javascript势力巨子指南这本书看看)

要理解这个问题首先要理解 始终指向这个问题,便是this这个关键字对照特殊,不能把他当成一样平常的变量名看待,最常见的一个差错便是在返回函数的调用中应用this,例如return function(){this.aMethod()}, 当你下次调用这个返回的匿名措施时,这个this引用的内容又指向了调用这个函数的工具了,记着的一点的this是个关键字,不是变量名,不会孕育发生闭包

对Number的扩展(留意num也可以当作对象,着实是在应用的时刻系统自动打包成Number工具):

toColorPart:把数字转换为可以用于表示colo和记娱乐和记怡情AGr的16进制值:例如 7.toColorPart()=>”07″,28.toColorPart()=>”1C”

succ: 返回num++, 但不改变num本身的值,着实便是 return this+1

times:对从0到这个数字轮流调用一个函数, 例如function a(n){docuement.write(n)}, 10.times(a), 将显示012345678910, 留意函数也是一个工具,而且与其他工具并和记娱乐和记怡情AG没有实质的差别

Try工具:

Try工具供给了一个很有趣的功能, 先看一下如下的代码:

var Ajax = {

getTransport: function() {

return Try.these(

function() {return new XMLHttpRequest()},

function() {return new ActiveXObject(’Msxml2.XMLHTTP’)},

function() {return new ActiveXObject(’Microsoft.XMLHTTP’)}

) || false;

}

}

您可能还会对下面的文章感兴趣: