javascript function的多种用法详解

快乐打工仔 分类:实例代码

由于设计原因,javascript的function可以充当多种角色。

比如可以作为构造函数,也可以作为对象中的方法,也可以作为一个普通独立的函数,并且我们还可以以匿名的方式使用它们,下面就通过简单的代码片段对此做一下简单介绍,需要的朋友可以做一下参考。

一.用作构造函数:

虽然javascript可以说是一门面向对象的语言,但是它并没有class类这个概念。

于是我们就可以使用function来充当这一角色,代码实例如下:

function Antzone(webName,url){
  this.webName=webName;
  this.url=url;
}
var antzone=new Antzone("犀牛前端部落","pipipi.net");
console.log(antzone.webName);

在上面的代码中,function已经承担了C#这样典型面向对象语言中Class类的角色。

二.用作对象的方法:

一个依附于对象的函数,也就是说它是对象的一个成员,我们通常称之为方法。下面修改一下上面的代码实例:

function Antzone(webName,url){
  this.webName=webName;
  this.url=url;
  this.show=function(){
    console.log(this.webName);
  }
}
var antzone=new Antzone("犀牛前端部落","pipipi.net");
antzone.show;

上面的代码中show就是属于对象的一个方法。

三.用作一个独立的函数:

也就是它作为一个独立的功能模块,并不隶属于任何对象。

代码实例如下:

function done(a,b){
  var num=a+b;
  return num;
}
console.log(done(1,2));

上面的函数实现了简单了算数运算功能,它是一个独立的功能模块。

四.匿名函数的使用:

// 全局命名空间
var RUI = {}
// ajax.js
~function(R) {
  // 辅助函数...
  ajax = {
    request: function() {
      // ...
    }
    getJSON: function() {
      // ...
    }
    ...
  }
  // 暴露出模块给 R
  R.ajax = ajax
}(RUI);

匿名函数执行后把API对象暴露给了RUI,无论匿名函数内做了多少操作,匿名函数外是看不到的,也是没有必要去理会的。最终关心的是公开的 API 方法,只要了解这些方法的参数及意义就可以马上使

回复

我来回复
  • 暂无回复内容