8月3号=》331页-340页

13.8.5  函数的实例属性和类属性

    JavaScirp函数不仅仅是一个函数,而且是一个雷。根据函数中声明变量的方式,函数中的变量有3中。

      局部变量:在函数中以普通方式声明的变量。

      实例属性:在函数中以this前缀修饰的变量。

      类属性:在函数中以函数名前缀修饰的变量。

13.8.6  调用函数的3中方式

    定义一个函数之后,JavaScript提供了3中调用函数的方式。

    直接调用函数

      //调用window对象的alert方法

      window.alert("测试代码");

    以call()方法调用函数

      直接调用函数的方式简单、易用,但这种调用方式不够灵活。有些时候调用函数时需要动态的传入一个函数引用,

      此时为了动态地调用函数,就需要使用call方法来调用函数了。

      代码示范:

        var each = function(array,fn)

        {

          for(var index in array)

          {

            //以window为调用者来调用fn函数

            //index、array[index]是传给fn函数的参数

            fn.call(null,index,array[index]);

          }

        }

        //调用each函数,第一个参数是数组,第二个参数是函数

        each([4,20,3],function(index),ele)

        {

          document.writeln("第"+index+"个元素是:"+ele);

        }

    以apply()方法调用函数

    apply()方法与call()方法的功能基本相似,他们都可以动态地调用函数。

    apply()与call()的区别如下:

      通过call()调用函数时,必须在括号中详细地列出每个参数。

      通过apply()动态地调用函数时,可以在括号中以arguments来代表所有参数。

    代码示范:

      var myfun = function(a,b)

      {

        alert("a的值是:"+a+"/nb的值是:"+b);

      }

      var example = function(num1,num2)

      {

        //直接用arguments代表调用example函数时传入的所有参数

        myfun.apply(this.arguments);

      }

      //为apply()动态调用传入数组

      myfun.apply(window,[12,23]);

      example(20,40);

13.8.7  函数的独立性

    虽然定义函数时可以将函数定义成某个类的方法,或定义成某个对象的方法。但JavaScript的函数时"一等共鸣",它永远是独立的,

    函数永远不会从属于其他类、对象。

    代码示范:

      function Dog(name,age,bark)

      {

        this.name = name;

        this.age = age;

        this.bark = bark;

        this.info = function()

        {

          return this.name+"的年龄为:"+this.age+",它的叫声是:"+this.bark;

        }

      }

       //创建Dog的实例

      var dog = new Dog("旺财",3,"汪汪");

      //创建Cat函数,对应Cat类

      function Cat(name,age)

      {

        this.name = name;

        this.age = age;

      }

      //创建Cat实例

      var cat = new Cat("kitty",2);

      //将dog实例的info方法分离出来,在通过call方法来调用info方法。

      //此时以cat为调用者

      alert(dog.info.call(cat));

    输出结果为:kitty的年纪为:2,它的叫声:undefined。

    上面程序函数Dog定义了名为info()的实例方法,但这个info()方法并不完全属于Dog实例,它依然是一个独立函数,所有程序在最后一行代码

    处将该函数分离出来,并让Cat实例来调用这个info()方法。

13.9  函数的参数处理

    大部分时候,函数都需要接受参数传递。JavaSript的参数全部是采用值传递方式。

13.9.1  基本类型和复合类型的参数传递

    对于基本类型参数,JavaScript采用值传递方式,因此在函数中修改参数值并不会对实参有任何影响。

    基本类型参数代码示范:

      function change(num)

      {

        num=5;

        document.write("函数里的num="+num);

      }

      var num = 1;

      change(num);

      document.write("传入函数的num为"+num);

    复合类型参数代码示范:

      function change(person)

      {

        person.age = 10;

        document.writeln("函数执行中person的age值为:"+person.age);

      }

      //使用json语法定义person对象

      var person = {age:5};

      document.writeln("函数调用前的person的age的值为:"+person.age);

      change(person);

      document.writeln("函数调用后的person的age的值为:"+person.age);

    结果为:函数调用前的person的age的值为:5

        函数执行值的person的age值为:10

        函数调用后的person的age的值为:10

13.9.2  空参数

    在JavaScript的函数中会将没有传入实参的参数值自动设置为undefined值。

    代码示范:

      function changeAge(person)

      {

        if(typeof person ==‘object‘)

        {

          document.write(person.age);

        }

        else

        {

          alert("参数类型不符合:"+typeof person);

        }

      }

    输出结果为:参数类型不符合:undefined。

    由于JavaScript调用函数时对传入的实参并没有要求,因此JavaScript没有所谓的函数“重载”,如果先后定义两个同名的函数,

    它们的形参列表并不相同,这也不是函数重载,这种方式会导致后面定义的函数覆盖前面定义的函数。

    代码示范:

      function test()

      {

        alert("第一个无惨的test函数");

      }

      function test(name)

      {

        alert("第二个有参的函数");

      }

      test();

    输出结果始终未第二个test函数。

    

13.9.3  参数类型

    JavaScript函数声明的参数列表无须类型声明,这是它作为一个弱类型语言的特征。

    代码示范:

      //name可以为任意类型 但在函数里面是不需要声明传入的name是什么类型。

      function test(name)

      {

      }

    

    

8月3号=》331页-340页

时间: 2024-10-16 11:07:10

8月3号=》331页-340页的相关文章

5月29号=》第41页-第45页

2.4 HTML5头部和元信息 <script>:该元素用于包含JavaScript脚本. <style>:该元素用于定义内部CSS样式. <link>:该元素用于链接外部CSS样式等资源. <title>:该元素用于定义文档标题. <base>:该元素用于指定该页面中所有链接的基准链接. 该元素属性如下: href:指定所有链接的基准链接. target:指定超链接默认在哪个窗口打开=>(_blank._parent._self._top

5月27号=》第30页-第35页

2.18 框架相关元素 HTML5删除了<frameset>.<frame>.<noframes>这三个标签 保留了<iframe>元素 2.2 HTML5新增的通用属性 2.2.1 contenEditable:该属性为true时可在页面直接对该标签进行编辑    用户编辑完后,内容会直接显示在该页面中(一旦  刷新页面就会重新加载,编辑的内容会丢失),开发  者可以通过该元素的innerHTML属性来获取编辑后    的内容   该属性具有"可

5月28号=》第35页-第40页

2.3.2 语义相关元素 <mark>:用于显示HTML页面中需要重点"关注"的内容,浏览器 通常会用黄色显示该标签内的内容. <time>:用来显示被标注内容是日期.时间或者日期时间.   使用该标签要指定datetime属性,格式为"yyyy-MM-ddTHH:mm"   如果<time>标签的内容直接符合以上格式,则可以不用指定datetime属性. <details>:该元素用于显示一段详细信息或某个主题的细节

6月11号=》121页-125页

6.1 样式单概述 W3C已经给出了两种样式单语言的推荐标准,一种是级联样式单CSS(Cascading Style Sheets), 另一种是可扩展样式单语言XSL(eXtensible Stylesheet Language). 6.1.1 CSS CSS主要提供如下两个功能: 1:对页面的字体.颜色控制更加细腻,让页面内容更富表现力,CSS的表现效果远远超出 传统HTML页面的color.bgcolor等属性的表现力. 2:通过CSS控制整站风格,CSS样式单可以同时控制整个站点所有页面的

8月19号=》436页-440页

16.1 Web Storage 在传统的HTML时代,浏览器的主要功能只是负责展现HTML页面,即使增加了JavaScript脚本,依然只是为动态地修改HTML页面服务.因此 浏览器只是一个“界面呈现工作”. 如果开发者需要在客户端存储少量数据,早起只能通过Cookie来实现,但Cookie存在如下3点不足: Cookie的大小被限制为4KB. Cookie会包含在每个HTTP请求中向服务器发送,这样势必导致多次发送重复数据. Cookie在网络传输时并未加密(除非整个应用都使用SSL),因此

8月11号=》386页-390页

14.9 navigator和地理位置 window对象有一个navigator属性,该属性对应于Navigator对象,该对象代表浏览该页面所使用的浏览器.该对象在不同 的平台上的信息并不完全相同,但总包含如下几个常用的属性. appName:返回该浏览器的内核名称. appVersion:返回该浏览器当前的版本号. platform:返回当前浏览器所在的操作系统. 14.9.1 HTML5新增的geolocation属性 HTML5为navigator新增了一个geolocation属性,这

8月5号=》346页-350页

13.11 创建对象 JavaScript中创建对象可以不用使用任何累.JavaScript中创建对象大概有3中方式. 13.11.1 使用new关键字调用构造器创建对象 代码示范: //定义一个函数,同时也定义了一个Person类 function Person(name,age) { this.name = name; this.age = age; } //使用new关键字创建Person实例 var p1 = new Person("张三",18); //输出该对象的属性值 a

7月29号=》301页-305页

13.5 运算符 JavaScript提供了相当丰富的运算符,运算符也是JavaScript语言的基础. 通过运算符,可以将变量连接成语句,语句是JavaScript代码中的执行单位. 下面依次介绍JavaScript中的运算符. 13.5.1 赋值运算符 =:即var num = 1; 13.5.2 算术运算符 +:即1+2 =3; -:即2-1 = 1; *:即2*2 =4; /:即4/2 = 2; %:即3%2=1; 13.5.3 位运算符 &:按位与. |:按位或. ~:按位非. ^:按

7月23号=》261页-265页

12.1 CSS3提供的变形支持 CSS3提供的变形支持可以对HTML组件进行常见的几何变换,包括旋转.缩放.倾斜.位移 4中变换,也可以使用变换矩阵进行变形. CSS3为变形支持提供了如下两个属性值. transform:该属性用于设置变形.该属性支持一个或多个变形函数.CSS3提供了如下变形函数. translate(tx [,ty]):该函数设置HTML组件横向上移动tx距离,纵向上移动ty距离.其中ty参数 可以省略,如果省略ty参数,则ty默认为0,表明纵向上没有位移. transla