Prototype1.5.1源代码解读分析6

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

所谓方法(method),其实就是通过对对象调用的javascript函数。我们可以将函数赋给任何变量,甚至赋给一个对象的任何属性。如果有一个函数f和一个对象o,就可以使用下面的代码定义一个名为m的方法:

o.m=f;

注意:我们这里省略了f函数的园括号。如果写成:

o.m=f();

那么将执行f函数,并且用他的返回值来给o对象的m属性赋值。

定义对象o的方法m()之后,就可以用下面的方式来调用他:

o.m();

每个对象都继承原型对象的所有属性。一个对象的原型是由创建并初始化该对象的构造函数定义的。javascript中所有的函数都有prototype属性 ,他引用了一个对象。因为原型对象和构造函数关联在一起,所以类的每个成员都从原型对象继承了相同的属性。注意,继承是在查询一个属性值时自动发生的。我们在声明构造函数之后,才能引用原型,对象只继承那些在调用构造函数之前已经添加到原型上的东西。例如:

function MyObject(name,size){

   this.name=name;

   this.size=size;

}

MyObject.prototype.tellSize=function(){

   alert(“size of”+this.name+” is ”+this.size);

}

var myObj=new MyObject(“tiddles”,”7.5米”);

myObj.tellSize();

我们可以使用原型机制来扩展内建类。例如:

Array.prototype.indexOf=function(obj)

{

  var result=-1;

  for(var i=0;i<this.length;i++){

   if(this[i]==obj){

   result=I;

   break;

}

}

return result;

}

for/in语句。这个语句是有点特别的循环语句。他的语法如下:

for(variable in object) {

statement

}

variable应该是一个变量名,声明一个变量的var语句,数组的一个元素或者一个对象的一个属性,object是一个对象名,或者是一个计算结果为对象的表达式。statement是循环体。for/in循环的主题对object的每个属性执行一次。在循环体执行之前,对象的一个属性名会被作为字符串赋给变量variable。在循环体内部,你可以使用这个变量和“[]”运算符来查询该对象属性的值。

try/catch/finally语句是javascript的异常处理机制。该语句的try从句只定义异常需要被处理的代码块。catch从句跟随在try块后,他是在try块内的某个部分发生了异常时调用的语句块。finally块跟随在catch从句后,存放清除代码,无论try块中发生了什么,该代码块都会被执行。虽然catch块和finally块都是可选的,但是try块中至少应该有一个catch块或finally块。try、catch和finally块都以大括号开头和结尾。这是必须的语法部分,即使从句只有一条语句,也不能省略大括号。

接下来的代码说明了try/catch/finally语句的语法和目的。尤其要注意cath关键字后用括号括起来的标识符。该标识符就像函数的参数,他指定了一个仅存在于catch块内部的局部变量。javascript将把要抛出的异常对象或值赋给这个变量:

try {

   //通常,该代码从代码块的顶部运行到底部没有任何问题,

   //但有时他会抛出异常,

   //既可以用throw语句直接抛出,也可以调用一个抛出异常的方法间接抛出,

}

catch(e){

  //当且仅当try块抛出了异常,本块中的语句才会被执行

  //这些语句使用局部变量e引用抛出的error对象或其他值。

  //这个块可以以某种方式处理异常,或者什么都不做,

  //忽略异常,或者用throw语句再抛出一个异常。

}

finally{

   //无论try块中发生了什么,这个块中的代码都会被执行。

   //try是否终止,他们都会被执行:

   //1)正常地,在达到try块底部后

   //2)由于break、continue或return语句终止

   //3)抛出一个异常,由catch从句处理

   //4)抛出一个异常,没有被捕捉,仍旧在传播

}

条件运算符(?:)是javascript中唯一的三元运算符(带有三个运算数)。他具有三个运算数,第一个位于?之前,第二个位于?和:之间,第三个位于:之后,可以用如下方式来使用他:

  x>0?x*y:-x*y;

原文地址:https://www.cnblogs.com/netcorner/p/2912302.html