advance

1.定义命名空间  ->>> 创建一个局部可用的对象,在对象中封装局部作用域内的有用代码.
    命名空间创建了一个新的局部作用域,将其他代码与完全作用域分开。避免命名冲突
 命名空间对象标识符需唯一。
  可以使用姓名或者字头作为名称的一部分,在定义中最好添加程序库的相关信息。
  在javascript中,可以定义一个对象来创建命名空间
         var  someNameSpace={
      someProperty:23,
      someMethod:function(){...}
   }
  定义后,可以使用对象标记法访问属性和方法:someNameSpace.someProperty和someNameSpace.someMethod()。
2.创建一个配置对象
        对象在分布式代码中的另一种常见用途是作为配置工具,可以轻松地在多个项目上使用相同的javascript代码,而不需要找遍大量代码行,编辑具体值。
  配置对象的创建方法:
              定义一个自定义对象,用其属性代表网站专用的设置
 var  CONFIG={
       host:‘http://www.example.com‘,
       errorClass:‘error‘,
    outputElement:‘output‘,
    ...
     };
  以后,其他javascript代码可以引用配置对象里面的配置,如:
   elem.className=CONFIG.errorClass;

3.创建自定义对象
    创建单个自定义对象,只需要创建一个类型为Object的新变量:
 如:
 var  obj={
         name:‘xiaowei‘,
         gender:‘male‘,
   getName:function(){
           return this.name;
           },
   getGender:function(){
            return this.gender;
           }     
      };

4.创建自定义对象的多个实例----->>>使用一个函数作为对象生成器。
    举例:
     //1.使用构造函数构造对象
     function Employee(firstName ,lastName,department)
  {
  this.firstName=firstName;
  this.lastName=lastName;
  this.department=lastName;
  this.getName=function(){
               return this.firstName+‘ ‘+this.lastName;
               }
  };
  //2.使用new运算符生成对象(必须使用new)
     var  e1=new Employee(‘Jane‘,‘Doe‘,‘Acounting‘);//new一个Employee对象
     var  e2=new Employee(‘John‘,‘Smith‘,‘Human Resouse‘);//new 另外一个Employee对像
   注意:为了与javascript中其他对象表现一致,可以自定义对象的同时,定义toString()和valueOf()方法。

5.javascript原型
    javascript是不同类型的面向对象语言,它是原型化的。意味着:所创建的对象继承自一个预定义模型(原型),而不是类定义。
 每个javascript对象都继承其原型中的属性和方法。
 原型链概念--->>> 举例说明:e1对象基于Employee原型,而Employee原型由基于Object,这种现象称为原型链。
           --->>>我们引用任何对象的属性和方法,javascript遍历原型链,寻找对应属性。
     --->>>javascript在到达根原型时停止遍历(Object原型为根原型),如果原型链中没有找到对应属性和方法,则返回undefined。
 为了区分对象内定义,还是原型链中的属性和方法,可以调用hasOwnProperty()方法,以需要区分的属性作为参数,(此方法在Object中已定义,因而所以对象都将继承)
   如:
   var  test={
             thing:1  
         };
    test.hasOwnProperty(‘thing‘);//返回true
    test.hasOwnProperty(‘valueOf‘);//返回false
    添加原型方法:在javascript中,可以编辑对象的protype属性来修改原型的属性和方法
     如:下面添加一个新的方法
     function Employee(firstName ,lastName,department)
  {
  this.firstName=firstName;
  this.lastName=lastName;
  this.department=lastName;
  this.getName=function(){
               return this.firstName+‘ ‘+this.lastName;
               }
  };
  Employee.prototype.getNameBackwards=function(){//添加的原型方法。现在所有new 的Employee对象都可以使用此方法
  return this.lastName+‘,‘+this.firstName; 
  }

追溯式修改原型的能力,甚至能修改内建于javascript的对象定义,如String.下面的代码为String添加一个trim()方法(如果String中还没有这个方法)
    if(typeof String.prototype.trim=‘undefined‘){//创建向后兼容的对象
          String.prototype.trim=function(){
    return this.replace(/^\s+|\s+$/g,‘‘);
    };
    }
  注意:尽管javascript允许修改原型,但原型的修改是全局的,会影响原型所有的实例,所以需谨慎使用
     如果只需在特定实例上使用一个函数,可以单独创建该函数,以该对象为参数调用它:    
  function  doSomeThing(obj){
      // Do  something with  obj;
   }
   也可以将函数定义添加到单个实例:
    var  obj={};
    obj.doSomeThing=function(){
           //Do  something with  this;   
          }

7.使用闭包
    闭包是与其创建时所在作用域绑定的函数。这意味着:闭包函数可以使用函数创建时(在同一个作用域)已有的变量。
     粗略的说,可以在一下情形可能遇到闭包:
    ①在一个函数中定义另一个函数
    ②内部函数引用存在于外部函数中的变量(包括外部函数的参数)
    ③内部函数在外部函数运行停止后被调用
 举例说明:
      window.onload=function(){
          //设置变量,包含变量tasks
    document.getElementById(‘theForm‘).onsubmit=function(){
    tasks.push(t);   
    };    
   };
   onload函数只被调用一次:在页面加载时,该函数定义了tasks数组,
        在常规的非闭包的情况下,函数变量执行就不再可用,意味着tasks数组将在onload函数执行完后所有命令之后不再存在。
   在onload外部函数中定义另一个函数创建了闭包。所有闭包都要求在另一函数中定义,内部函数处理表单提交,将被调用许多次,
   但是调用的时间总是在外部函数结束执行之后。

时间: 2024-10-17 08:19:38

advance的相关文章

VisualBoy Advance编译心得

今天闲着没事在SourceForge逛,无意中找到了VisualBoy Advance(VBA)项目的svn地址.哈哈,那就编了它吧. 编译工具:vs2010 VBA主页:http://vba-m.com/ VBA最新代码svn地址:http://svn.code.sf.net/p/vbam/code 我把代码CheckOut到了G:\vbam Check的速度慢的可以,幸好工程也不大,耐心等待吧. ---------过去了几个小时--------- 看看CheckOut下来的目录吧 Depen

advance shading--BRDF

其实,双向反射(reflect)分布函数(BRDF)是一个四元函数,这个函数最终只是计算一个比值,这个值确定了射入物体表面的光中有多少被物体表面反射,并最终被眼睛所看到.反射的愈多,眼睛收到的光强越大,亮度也就越大.所以,这个函数的本质式一个调节函数.这里所说的光源都是non-area 光源.BRDF的物理表达式为 其中l是入射光的方向,v是我们计算的光强方向,他们都是单位向量,它描述的是一个微观现象,不考虑因为距离造成的衰减.以上说BRDF是四元函数,是将v和l转化到球面坐标系下表示,分别需要

【SAS ADVANCE】Performing Queries Using PROC SQL

SQL: Structured Query Language 一.Objectives in this chapter: invoke the SQL procedure select columns define new columns specify the table(s) to read specify subsetting criteria order rows by values of one or more columns group results by values of on

【SAS ADVANCE】Performing Advanced Queries Using PROC SQL

一.Objectives display all rows, eliminate duplicate rows, and limit the number of rows displayed subset rows using other conditional operators and caculated values enhance the formatting of query output Using summary functions, such as COUNT, with and

文件夹同步/备份软件推荐 (SyncToy/FreeFileSync/Compare Advance/GoodSync/Allway Sync/Compare Advance)

关于文件同步的文章,已经很多次出现在异次元上了,因为它们很多都能实实在在提高工作便利性.比方说有我们熟悉的云端同步软件 Dropbox.金山快盘,以及曾经还介绍过可本地使用的 Allway Sync 以及 GoodSync等等. 虽然说已经介绍过了这么多同类型的软件,但在一番深思熟虑之后还是决定再介绍几款本地文件夹同步备份软件,我相信,虽然他们大体上是类似的,但是还是各自有自己的特色,而屏幕前的你,则可根据自己的需求选择更加合适自己的…… Microsoft SyncToy SyncToy 是由

STL迭代器辅助函数——advance

Advance(i, n) increments the iterator i by the distance n. If n > 0 it is equivalent to executing ++i n times, and if n < 0 it is equivalent to executing --i n times. If n == 0, the call has no effect. advance(i, n)使得迭代器i增加一个长度n.如果n>0,那么advance(i

【SAS ADVANCE】通过COUNT函数实现counting values及HAVING子句

一. COUNT函数 在实际统计应用中,需要计算观测值出现的次数,这项功能可以通过COUNT函数来实现,它有下面三种形式和功能: form you used 返回值 例子 COUNT(*) 整个表或组的行数   select count(*) as Count COUNT(column) 当参数中所选定的列没有缺失值时,输出表或者组中该变量的行数   select count(jobcode) as Count COUNT(DISTINCT column) 该列中distinct values的

Timing advance of GSM(时间提前量)

基本概念 时间提前量TA(Timing Advance)的作用是为了补偿电波传输延迟,而根本目的则是为了提高信道编解码效率.由于GSM采用TDMA,每载频8个时隙,应严格保持时隙间的同步,没有TA就无法克服固有的无线传输劣势. GSM的小区半径可以达到35km,从手机出来的信号需要经过一定时间才能到达基站,因此我们必须采取一定的措施(时延调整),来保证信号在恰当的时候到达基站. 简单来说,就是采用时间提前量(TA)参数调整发信时间.TA是由基站根据接收到测量报告确定的,然后发送给手机,正常通话中

Cacti监控Advance Ping

Cacti脚本 1.Advance Ping 脚本及模板 注:要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字. 1).功能:此模板用来监控一个TCP/UDP端口.ICMP的延时情况和丢包情况. 2).下载ss_fping.php脚本并放到/usr/local/apache/htdocs/cacti/scripts/目录下 下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导

C++ STL 迭代器方法 之 advance与prev 方法 浅析

[摘要] 迭代器是STL中重要的一支,prev和distance是其基本方法.distance方法十分简单,就不在此赘述,现主要对prev方法以及其相关方法--advance方法作简要介绍与使用说明,并在文末附上代码示例. [Advance 方法] Advance iterator Advances the iterator it by n element positions. If it is a random-access iterator, the function uses just o