javascript函数的几种写法集合
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函数的几种写法集合的更多相关文章
- Javascript函数的几种写法
最近在看某个插件的源码时,总是看到各种不同风格的js函数的写法.(怪我只是初级水平,看的一头雾水) 于是想找点资料,总结总结,心里不清不楚的总是很别扭! 1.常规写法 // 函数写法 function ...
- javascript立即调用的函数表达式N种写法(第二篇)
原文:javascript立即调用的函数表达式N种写法(第二篇) 上一篇博客我谈到将函数声明转换为函数表达式最常见的一种写法是:通过括号()将匿名函数声明转换为函数表达式即(function(){}) ...
- swap函数的四种写法
swap 函数的四种写法 (1)经典型 --- 嫁衣法 void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } ( ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
- swap()函数的几种写法及优劣
试用几种方法实现swap函数,比较效率高低. 首先说结果,最快的是赋值交换. 原因分析 gcc开启O2优化后,三个函数的汇编代码一样.是的,除了第一行的文件名,一模一样. 附代码 void swap1 ...
- C++ 常用编程--Swap函数有几种写法?
C++ 常用编程--Swap函数有几种写法? 在说C++模板的方法前,我们先想想C语言里面是怎么做交换的. 举个例子,要将两个int数值交换,是不是想到下面的代码: void swap(int& ...
- JavaScript 函数的两种声明方式
1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...
- JavaScript函数的4种调用方法详解
在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...
- ASP.NET后台中调用前台Javascript函数的几种方法
做web开发,用的技术是aspx.net,可是由于比较习惯于ASP现在做起来,觉得非常别扭,原因在于有很多功能其实在前台可以处理的,但是因为用到了很多webcontrol,导致不断postback.如 ...
随机推荐
- ABP源码分析三十三:ABP.Web
ABP.Web模块并不复杂,主要完成ABP系统的初始化和一些基础功能的实现. AbpWebApplication : 继承自ASP.Net的HttpApplication类,主要完成下面三件事一,在A ...
- 【MSP是什么】MSP认证之项目群管理学习总结
首先要说的是,我这篇体会是针对一定的背景的,不能算是一种通用的管理方式,只能是我自己的经验总结,能给大家平常的管理提供一点思路,我就很满足了.先说说背景,我所在公司做的是大型桌面应用软件,简单点说就是 ...
- VMware-存储断网之后无法添加vmx到清单
由于发生了单点故障,笔者最近处理了一个case,其中一些经验非常希望和大家分享. 问题原因: Technorati 标签: VMware,虚拟机,vmx,锁定,干货 某环境使用VMware的ESXi5 ...
- position:sticky的兼容性尝试
开篇 笔者刚刚结束淘宝的工作,现在加入了一家有青春活力的垂直电商公司,正对着阿里巴巴的西溪园区,最近一直在熟悉新的工作环境和规范,因此博客有好些时间没有更新了,在此抱歉! 在忙碌完公司的发布系统之后, ...
- Java 特定规则排序-LeetCode 179 Largest Number
Given a list of non negative integers, arrange them such that they form the largest number. For exam ...
- Vertica 6.1不完全恢复启动到LGE方法
环境:RHEL6.2 + Vertica 6.1.3-7 确定所有节点的vertica进程都停掉(包括agent和python),如果有运行的,停止它或者杀掉它. 确定所有节点的spread进程都正常 ...
- go语言结构体
定义: 是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体. 成员: 每个值称为结构体的成员. 示例: 用结构体的经典案例处理公司的员工信息,每个员工信息包含一个唯一的员工编号.员工的名字. ...
- 从零自学Hadoop(20):HBase数据模型相关操作上
阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...
- C#开发微信门户及应用(13)-使用地理位置扩展相关应用
本文继续上一篇<C#开发微信门户及应用(12)-使用语音处理>,继续介绍微信的相关应用.我们知道,地理位置信息可以用来做很多相关的应用,除了我们可以知道用户所在的位置,还可以关联出一些地理 ...
- ubuntu安装navicat及常见问题解决
1.安装navicat Step1: 下载Navicat ,网址:http://www.navicat.com/en/download/download.html Step2:进入下载目录,解压压缩包 ...