1.常规写法

 function fnName(){
console.log("常规写法");
}

2.匿名函数,函数保存到变量里

 var myfn = function(){
console.log("匿名函数,函数保存到变量里");
}

3.如果有多个变量,可以用对象收编变量

3.1 用json对象

 var fnobject1={
fn1:function(){
console.log("第一个函数");
},
fn2:function(){
console.log("第二个函数");
},
fn3:function(){
console.log("第三个函数");
}
11 }

3.2 声明一个对象,然后给它添加方法

 var fnobject2 = function(){};
fnobject2.fn1 = function(){
console.log("第一个函数");
}
fnobject2.fn2 = function(){
console.log("第二个函数");
}
fnobject2.fn3 = function(){
console.log("第三个函数");
}

3.3 可以把方法放在一个对象函数里

 var fnobject3 = function(){
return {
fn1:function(){
console.log("第一个函数");
},
fn2:function(){
console.log("第二个函数");
},
fn3:function(){
console.log("第三个函数");
}
}
};

4.可用类来实现,注意类的第二种和第三种写法不能混用,否则一旦混用,如在后面为对象的原型对象赋值新对象时,那么他将会覆盖掉之前对prototype对象赋值的方法

4.1 第一种写法

 var fnobject4 = function(){
this.fn1 = function(){
console.log("第一个函数");
}
this.fn2 = function(){
console.log("第二个函数");
}
this.fn3 = function(){
console.log("第三个函数");
}
};

4.2 第二种写法

 var fnobject5 = function(){};
fnobject5.prototype.fn1 = function(){
console.log("第一个函数");
}
fnobject5.prototype.fn2 = function(){
console.log("第二个函数");
}
fnobject5.prototype.fn3 = function(){
console.log("第三个函数");
}

4.3 第三种写法

 var fnobject6 = function(){};
fnobject6.prototype={
fn1:function(){
console.log("第一个函数");
},
fn2:function(){
console.log("第二个函数");
},
fn3:function(){
console.log("第三个函数");
}
}

4.4 第四种写法

var fnobject7 = function(){};
fnobject7.prototype={
fn1:function(){
console.log("第一个函数");
return this;
},
fn2:function(){
console.log("第二个函数");
return this;
},
fn3:function(){
console.log("第三个函数");
return this;
}
}

5.对Function对象类的扩展(下面三种只能用一种)

5.1 第一种写法(对象)

 Function.prototype.addMethod = function(name,fn){
this[name] = fn;
}
var methods=function(){};//var methods=new Function();
methods.addMethod('fn1',function(){
console.log("第一个函数");
});
methods.addMethod('fn2',function(){
console.log("第二个函数");
});
methods.addMethod('fn3',function(){
console.log("第三个函数");
});

5.2 链式添加(对象)

 Function.prototype.addMethod = function(name,fn){
this[name] = fn;
return this;
}
var methods=function(){};//var methods=new Function();
methods.addMethod('fn1',function(){
console.log("第一个函数");
}).addMethod('fn2',function(){
console.log("第二个函数");
}).addMethod('fn3',function(){
console.log("第三个函数");
});

5.3 链式添加(类)

Function.prototype.addMethod = function(name,fn){
this.prototype[name] = fn;
return this;
}
var Methods=function(){};//var methods=new Function();
methods.addMethod('fn1',function(){
console.log("第一个函数");
}).addMethod('fn2',function(){
console.log("第二个函数");
}).addMethod('fn3',function(){
console.log("第三个函数");
});

javascript函数的几种写法集合的更多相关文章

  1. Javascript函数的几种写法

    最近在看某个插件的源码时,总是看到各种不同风格的js函数的写法.(怪我只是初级水平,看的一头雾水) 于是想找点资料,总结总结,心里不清不楚的总是很别扭! 1.常规写法 // 函数写法 function ...

  2. javascript立即调用的函数表达式N种写法(第二篇)

    原文:javascript立即调用的函数表达式N种写法(第二篇) 上一篇博客我谈到将函数声明转换为函数表达式最常见的一种写法是:通过括号()将匿名函数声明转换为函数表达式即(function(){}) ...

  3. swap函数的四种写法

    swap 函数的四种写法 (1)经典型 --- 嫁衣法 void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } ( ...

  4. JavaScript 函数的4种调用方法

    JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...

  5. swap()函数的几种写法及优劣

    试用几种方法实现swap函数,比较效率高低. 首先说结果,最快的是赋值交换. 原因分析 gcc开启O2优化后,三个函数的汇编代码一样.是的,除了第一行的文件名,一模一样. 附代码 void swap1 ...

  6. C++ 常用编程--Swap函数有几种写法?

    C++ 常用编程--Swap函数有几种写法? 在说C++模板的方法前,我们先想想C语言里面是怎么做交换的. 举个例子,要将两个int数值交换,是不是想到下面的代码: void swap(int& ...

  7. JavaScript 函数的两种声明方式

    1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...

  8. JavaScript函数的4种调用方法详解

    在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...

  9. ASP.NET后台中调用前台Javascript函数的几种方法

    做web开发,用的技术是aspx.net,可是由于比较习惯于ASP现在做起来,觉得非常别扭,原因在于有很多功能其实在前台可以处理的,但是因为用到了很多webcontrol,导致不断postback.如 ...

随机推荐

  1. ASP.NET Web API Model-ModelMetadata

    ASP.NET Web API Model-ModelMetadata 前言 前面的几个篇幅主要围绕控制器的执行过程,奈何执行过程中包含的知识点太庞大了,只能一部分一部分的去讲解,在上两篇中我们看到在 ...

  2. 一种简单,轻量,灵活的C#对象转Json对象的方案(续)

    本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的 ...

  3. 自用的基于Emit的C#下DataTable转实体类方法

    之前一直在做WebForm的开发,数据绑定时直接DataTable绑定Gridview很方便,但是最近开始往MVC转,数据列表的传递和页面展示基本上是以List为主,像下面这样,遍历实体类的各个字段去 ...

  4. Javascript之自定义事件

    Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加.删除事件. 下面通过实例,一步一步构建一个具体的Javasc ...

  5. 数据库日常维护-CheckList_02有关数据库备份检查

    数据库备份是DB日常运维中最基本的也是最重要的工作,很多情况下都是做成作业形式实现自动化周期性的做全备.差异以及日志备份.那么,如果作业出现问题没有完成工作,我们可以设置自动报警如email被动提醒我 ...

  6. 读书笔记--SQL必知必会13--创建高级联结

    13.1 使用表别名 SQL可以对列名.计算字段和表名起别名. 缩短SQL语句 允许在一条SELECT语句中多次使用相同的表. 注意:表别名只在查询执行中使用,不返回到客户端. MariaDB [sq ...

  7. ASP.NET Core 中文文档 第四章 MVC(3.4)如何使用表单

    原文:Working with Forms 作者:Rick Anderson.Dave Paquette.Jerrie Pelser 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) 这篇文章演示了 ...

  8. HTML基本元素(四)

    1.HTML框架 框架的作用就是把浏览器窗口划分成多个子窗口,而且每个子窗口都可以载入各自的HTML文档. *注意:html框架集与body同级,因此不能同时出现! 框架结构标签:<frames ...

  9. Nginx最大客户连接数算法一些遐想

    Nginx最大客户连接数算法一些遐想 现在很多互联网公司都在使用nginx,并且替换掉以前的Apache,nginx的优点就不说了,浅聊两句nginx的某些配置参数,找到这些参数设置的目的和关联性,并 ...

  10. 手把手教从零开始在GitHub上使用Hexo搭建博客教程(二)-Hexo参数设置

    前言 前文手把手教从零开始在GitHub上使用Hexo搭建博客教程(一)-附GitHub注册及配置介绍了github注册.git相关设置以及hexo基本操作. 本文主要介绍一下hexo的常用参数设置. ...