• 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;

  • 相关阅读:
    java的注解
    java的反射
    Java的垃圾回收机制
    Java的jvm上的内存位置的分配
    Java的Junit与debug模式入门
    三、FreeMarker 模版开发指南 第三章 模版
    【CodeForces】[698A]Vacations
    【CodeForces】[629B]Far Relative’s Problem
    【POJ】[1328]Radar Installation
    【杭电】[1789]Doing Homework again
  • 原文地址:https://www.cnblogs.com/netcorner/p/2912302.html
Copyright © 2020-2023  润新知