JS javascript 中的高级知识

来源:互联网 发布:sia国际艺术教育 知乎 编辑:程序博客网 时间:2024/05/16 14:39

JS前两章  讲的都是基础知识 本章讲解一下JS中不同于Java的高级知识: {JS又叫做函数式语言}让java变成动态语言三种方式 lambda 和 Grovvy语言实现和 Scala语言[基于JDK的大数据动态语言]。


JS函数创建的三种方法:1.利用function声明函数:function ok(..){..} ;

                                        2.利用window.onlode=function (..){..} ;声明匿名函数 ,在页面加载的时候创建函数。

                                        3.函数直接量或函数表达式:

3.1:JS创建动态运行时函数:var f=new Function(" "," ",fun) ;  所谓的动态就是 函数体可以由外界传进来。因此可以动态声明。非常方便。 

3.2:JS创建动态函数参数传递函数:  先声明函数的执行顺序,完后执行函数调用,这里我们的形参是函数。

       function ok(x,y,z,k){ x(y,z,k) ;}  ; 这样我们可以发现形参x就是要变成一个对应的函数形参传递进来。两种实现方式第一种,体外声明函数,第二种声明匿名内部函数。

3.3:JS创建能够记住状态的函数(又叫做函数闭包,或者柯里化)返回函数:就是函数返回的是函数,返回的函数可以对外部函数的参数进行计算。所以外部函数的参数就是全局变量,或者是静态变量。  function ok(x){return function(y){ return x*y ; } ;}  、测试:var a=function(3) ; alert(a(3)); alert(a(4));


                          注:(1)由于JS是弱类型语言,所以在函数声明的时候可以不写形参,但在调用的时候可以写形参。利用arguments内部方法就可以实现对应形参的获取。arguments.length ;  arguments[i] ;

(2) JS可以在形参中传递任何数据类型的数据 ,包括数组。JS也分基本类型和引用类型。当传递数组的时候就传递的是地址。剩下正常传递的是值。


二。JS中的面向对象技术:

        介绍:JS中的面向对象技术,比较简单,都是通过函数来进行实现的。能实现对应的封装和继承的特性,但没有多态的特性,因为JS本身就具有多态的特性。

       1.JS中重用JS对象:JS中函数就是对应的类。里面可以直接使用this.属性/或者this.方法 。无需声明属性和方法。调用的时候直接new 。跟java的一样了就。 注:JS中this是代表公有化。如果没有写this的话代表就是私有的。

       2.JS中保持对象私有:不用this  直接声明 (用var),就是代表的私有。  {没有保护,没有默认,只有共有,私有。}

       3.JS中用原型扩展对象:描述:在原先类的上边进行扩展。而且不改变源程序本身。利用prototype来进行实现。  在实例化的对象上例如 a.prototype.newmethod=function (){} ;就相当于添加了一个 newmethod 方法 。 

       4.JS中简单的声明Get和Set方法:利用prototype简捷快速的声明方法和对应的属性。对应的类名.prototype={ 方法名/或者属性名: 对应的方法实现/或者属性值 }  。这样在一个中括号中就能实现属性和方法的实现。

       5.JS实现继承的功能:  继承的本质就是 利用apply这个内部变量进行实现的 。 父亲类.apply(this,arguments) ;this代表儿子,arguments代表对应的属性。 利用这句话就可以实现对应的继承了。



0 0