• 函数声明与表达式
 function someFunc(){
alert("这是一个函数");
} var func=function(){
alert("函数表达式");
};//注意末尾有一个分号 someFunc();
func();
  • 作为值的函数
 //把函数当作参数传递给另一个函数,类似C#中的委托用法
function sum(n1){
return n1+10;
} function minus(n1){
return n1-10;
} function callSomeFunc(someFunc,someArguments){
return someFunc(someArguments);
} alert(callSomeFunc(sum,20));
alert(callSomeFunc(minus,30));
 //将一个函数作为另一个函数的结果返回
<script type="text/javascript" charset="utf-8">
function createComparisonFunction(propertyName){
return function(obj1,obj2){
var val1=obj1[propertyName];
var val2=obj2[propertyName];
if(val1>val2){
return 1;
}else if(val1<val2){
rerurn -1;
}else{
return 0;
}
}
}
var data=[{name:"xiao",age:23},{name:"wang",age:26}];
data.sort(createComparisonFunction("name"));
alert(data[0].age);
</script>
  • 函数内部属性
 <script type="text/javascript" charset="utf-8">
//arguments的属性,代替了函数名的紧耦合
function factorial(num){
if(num<=1){
return 1;
}else{
return num*arguments.callee(num-1);
}
}
alert(factorial(5));
</script>
 <script type="text/javascript" charset="utf-8">
function outer(){
inner()
}
function inner(){
//alert(inner.caller);
alert(arguments.callee.caller);//caller获取调用当前函数的引用
}
inner();
</script>
  • 函数的属性及方法

name可以获取函数的名称,length属性可以获取函数参数的个数;

 function sum(n1,n2){

 }
alert(sum.name);//sum
alert(sum.length);//
 <script type="text/javascript" charset="utf-8">
window.color="red";
var o={color:"bule"};
function showColor(){
alert(this.color);
}
showColor();//red
showColor.call(o);//blue
showColor.apply(o);//blue
var objshowColor= showColor.bind(o);//band创建了函数的一个示例,objshowColor内this就相当于o
   objshowColor();//blue
 </script>
  function sum(n1,n2){
return n1+n2;
} function callSum(n1,n2){
return sum.apply(this,arguments);//传递参数
} alert(callSum(3,5));

apply和call不仅可以传递参数,还可以扩充函数的作用域(真正的用处)

Javascript基础Function的更多相关文章

  1. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  2. JavaScript基础

    JavaScript基础 JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处 ...

  3. 一步步学习javascript基础篇(0):开篇索引

    索引: 一步步学习javascript基础篇(1):基本概念 一步步学习javascript基础篇(2):作用域和作用域链 一步步学习javascript基础篇(3):Object.Function等 ...

  4. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  5. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  6. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  7. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  8. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

  9. javascript基础01

    javascript基础01 Javascript能做些什么? 给予页面灵魂,让页面可以动起来,包括动态的数据,动态的标签,动态的样式等等. 如实现到轮播图.拖拽.放大镜等,而动态的数据就好比不像没有 ...

随机推荐

  1. Sass函数--数字函数

    数字函数简介 Sass 中的数字函数提要针对数字方面提供一系列的函数功能: percentage($value):将一个不带单位的数转换成百分比值: round($value):将数值四舍五入,转换成 ...

  2. 封装Socket.BeginReceive/EndReceive支持Timeout简介

    .NET中的Socket类提供了网络通信常用的方法,分别提供了同步和异步两个版本,其中异步的实现是基于APM异步模式实现,即BeginXXX/EndXXX的方式.异步方法由于其非阻塞的特性,在需考虑程 ...

  3. spring-security 登陆认证之初次探究

    首先,希望还对 spring-security框架完全不懂的新手 下载下Git源码. 引入到项目中.这个短文就是边看源码边聊的.也会启动下项目验证自己的推想. 一.登陆认证的登陆配置项 <for ...

  4. ORACLE 物化视图

    最近几天,我负责的P项目环境中提供给W系统的一个视图,由于查询逻辑复杂,数据量比较大,导致每次查询视图的时候,查询速度慢,效率低下,遭到了w系统人员的投诉.想了想,还是改成物化视图吧,用了物化视图,腰 ...

  5. h5标签canvas关于getImageData跨域的问题

    h5标签canvas关于getImageData跨域的问题 在学习h5的时候,canvas标签中getImageData()报错:security error! 具体代码如下(chrome浏览器): ...

  6. (一)chrome扩展 - API小记

    browserAction 设置browser action的badge文字,badge 显示在图标上面 chrome.browserAction.setBadgeText({text:"i ...

  7. hdu2896

    数据水,但是各种wa各种t各种re最后照着别人的改了改发现了毛病 数组做指针传入的时候系统是不知道传入后的数字的长度的如果用memset他就只会讲指针的地方清零 #include<iostrea ...

  8. HTML5比较实用的代码

    增强IE兼容性 <!--[if IE]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js&q ...

  9. DeDe调用指定栏目ID下的文章

    *注: row: 调用条数 titlelen: 字数 typeid: 调用的栏目ID orderby: 按照升序对记录进行排序 idlist: 提取特定文档为空 infolen='40' 内容简介长度 ...

  10. 【转】对ARM堆栈的理解

    对ARM堆栈的理解 堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表.因此,对栈来说,可以进行插入或删除操作的一端端称为栈顶(top),相应地,另一端称为栈底(bott ...