JavaScript 百分网手机站

万恶的function在javascript中的运用实例分析

时间:2018-05-23 08:52:55 JavaScript 我要投稿

万恶的function在javascript中的运用实例分析

  javascript中最有特色而又让你困惑的function算一个了

  下面看一下常用操作

  复制代码 代码如下:

  function doit(){

  .....

  }

  doit();

  javascript中的函数我们可以把它当作方法使用

  复制代码 代码如下:

  var obj=new Object();

  obj.say=function(){

  .....

  }

  obj.say();

  而function实际上就是对象(即Function类型的实例)

  复制代码 代码如下:

  function result(num1, num2) {

  return num1 + num2;

  }

  var result = new Function("num1", "num2", "return num1+num2");

  以上执行效果是一样的,同时function result还可以这样写(即函数表达式)

  复制代码 代码如下:

  var result=function(num1,num2){

  return num1+num2;

  }

  这俩种写法的唯一区别是function是优先执行,而函数表达式是代码执行到才执行,另外每个函数内部都有一个类似数组的arguments对象

  函数执行动态参数,即

  复制代码 代码如下:

  function result(){

  return arguments[0]+arguments[1];

  }

  result(1,2);

  arguments在动态传递参数方面经常使用

  既然说function是对象,那么它应该也具体属性

  复制代码 代码如下:

  function person(){

  ....

  }

  person.name="xxxx";

  person.say=function(){

  alert(this.name);

  }

  person.say(); //alert("xxxx")

  我们还可以把它当成类,而函数体相当于构造函数

  复制代码 代码如下:

  function Person(nm){

  this.name=nm;

  this.say=function(){

  alert(nm);

  alert(this.name);

  }

  }

  var p1=new Person("ygm1");

  p1.say(); //alert ygm1 ygm1

  var p2=new Person("ygm2");

  p2.say(); //alert ygm2 ygm2

  注意这里要用this.name 因为this代表的是当前对象,如果直接alert(name) 求的是window对象的属性,同时传进来的参数nm在方法say中可以直接用,其实这涉及到作用域链,每个function体就是一个作用域,子域可以访问到父域的属性,而反过来却不行(其实也是可以取到的,设计到闭包一些知识,这里不做详解..)

  与其他一些OO语言相比,每个类都可以有一些静态属性或方法,而javascript通过原型来模拟以达到每个对象共享其属性

  复制代码 代码如下:

  function Person(num) {

  .....

  }

  Person.prototype.name = "ygm";

  alert(new Person().name);

  但OO语言的静态方法都是由类去调用,不能实例化本身的.,javascript中由于其特殊性恰好相反

  注意这里alertPerson的name属性,如果函数体内没有查找到name则会到原型中去找,如果查找到则会屏蔽原型中的name直接返回其值

  其实每创建一个function的同时也创建了一个原型对象,而原型对象引用自object,所以object是所有对象的基类

  我们可以重写原型对象

  Person.prototype=new ParentPerson();

  Person的原型对象指向ParentPerson对象,而ParentPerson对象又指向自己的原型对象...,也就形成了原型链...

  好了 今天就写到这里...

【万恶的function在javascript中的运用实例分析】相关文章:

1.javascript之Function对象学习小结

2. javascript中(function{})()写法解析

3.JavaScript中Function函数

4.Javascript实例教程

5.JavaScript实例讲解

6.关于javascript中cookie对象用法的实例分析

7.javascript中的函数分析

8.javascript中Function类型详细介绍