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代表对应的属性。 利用这句话就可以实现对应的继承了。