<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script type="text/javascript"> /**
* 由于函数是对象,所以可以直接把函数通过参数传递进来
* @param fun 函数对象
* @param arg 参数
* @returns {*}
*/
function callFun(fun , arg){
//第一个参数就是函数对象
return fun(arg);
} function say(str){
alert("hello:" + str);
} function sum(num){
return num + 100 ;
} //调用了say函数
callFun(say , "Leon"); //hello:Leon
//调用了sum函数
alert(callFun(sum,20)); //120 function fn1(arg){ /**
* 此时返回i的是一个函数对象,
*/
var rel = function(num){
console.info("inner:" + num + " arg: " + arg);
return arg + num ;
}
console.info("outter arg: " + arg);
return rel;
} //此时f是一个函数对象,可以完成调用
var f = fn1(20); //控制台输出值: outter arg: 20
console.info(f); //控制台输出值: function(num)
console.info("-------------");
alert(f(11)); //控制台输出值:inner:11 arg: 20 运行结果:31 </script> </head>
<body> </body>
</html>
 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title> <script type="text/javascript"> console.info("10"+1); //111
//当进行减法运算时,会自动完成转换
console.info("10"-1); //9 //根据数字来进行排序的函数
function sortByNum(a,b){
return a - b ;
} var as = [1,2,11,33,12,190];
//对应js而言,默认是按照字符串排序
as.sort();
console.info(as); // [1, 11, 12, 190, 2, 33] as.sort(sortByNum);
console.info(as); //[1, 2, 11, 12, 33, 190] //根据数字来进行排序的函数
function sortByNum2(a,b){
return parseInt(a) - parseInt(b) ;
}
var as2 = [1,2,"11px",33,"12px",190];
as2.sort(sortByNum2);
console.info(as2); //[1, 2, "11px", "12px", 33, 190]
</script> </head>
<body> </body>
</html>
 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title> </head>
<body>
<div id="person"> </div>
<script type="text/javascript"> function Person(name,age){
this.name = name ;
this.age = age ;
} var p1 = new Person("Leon",39);
var p2 = new Person("John",23);
var p3 = new Person("Ada",41);
var ps = [p1,p2,p3];
ps.sort();
console.info(ps); //[Person { name="Leon", age=39}, Person { name="John", age=23}, Person { name="Ada", age=41}] /**
* 使用sortByName sortByAge这两个方法来处理排序,带来的我呢体是需要为每一个属性都设置一个函数
* 显然不灵活
* 但是如果通过函数的返回值调用就不一样了
*/
function sortByName(obj1 , obj2){
if(obj1.name > obj2.name ){
return 1;
}else if(obj1.name == obj2.name ){
return 0 ;
}else{
return -1 ;
}
} ps.sort(sortByName);
console.info(ps); //[Person { name="Ada", age=41}, Person { name="John", age=23}, Person { name="Leon", age=39}] function sortByAge(obj1 , obj2){
return obj1.age - obj2.age;
}
ps.sort(sortByAge);
console.info(ps); //[Person { name="John", age=23}, Person { name="Leon", age=39}, Person { name="Ada", age=41}] //改造方法
function sortByProperty(propertyName){
var sortFun = function(obj1 , obj2){
if(obj1[propertyName] > obj2[propertyName]){
return 1 ;
}else if(obj1[propertyName] == obj2[propertyName]){
return 0 ;
}else{
return -1 ;
}
}
return sortFun;
} ps.sort(sortByProperty("age"));
console.info(ps); //[Person { name="John", age=23}, Person { name="Leon", age=39}, Person { name="Ada", age=41}] ps.sort(sortByProperty("name"));
console.info(ps); //[Person { name="Ada", age=41}, Person { name="John", age=23}, Person { name="Leon", age=39}] function show(){
var p = document.getElementById("person");
for(var i = 0 ; i < ps.length ; i ++){
p.innerHTML += ps[i].name + " , " + ps[i].age + "<br/>";
}
} show();
</script>
</body>
</html>

js 函数的传值问题的更多相关文章

  1. JSF页面中使用js函数回调后台bean方法并获取返回值的方法

    由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...

  2. jsp想js,action传值

    1.struts2 action如何向JSP的JS函数传值 action中定义变量 public class TestAction extends ActionSupport implements S ...

  3. JSF页面中使用js函数回调后台action方法

    最近遇到了一个问题就是在JSF页面中嵌入html页面,这个html页面中很多功能是使用js动态生成的,现在需要在js函数里想去调用JSF中action类method()方法并动态传送数据给后台进行处理 ...

  4. js获取url传值的方法

    这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 js获取url参数值: inde ...

  5. jsp js action之间传值

    1.struts2 action如何向JSP的JS函数传值 action中定义变量 public class TestAction extends ActionSupport implements S ...

  6. 前端实操案例丨如何实现JS向Vue传值

    摘要:项目开发过程中,组件通过render()函数渲染生成,并在组件内部定义了自定义拖拽指令.自定义拖拽指令规定了根据用户可以进行元素拖拽.缩放等一系列逻辑处理的动作. 本文分享自华为云社区<[ ...

  7. 3.3 js函数

    1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...

  8. Js函数function基础理解

    正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...

  9. js函数表达式和函数声明的区别

    我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...

随机推荐

  1. CSS打造三级下拉菜单

    <html><head><meta http-equiv="Content-Type" content="text/html; charse ...

  2. C# 导出一个控件的矢量图

    调用Control.DrawToBitmap(Bitmap) 方法是很容易得到控件的图形的. 但是bitmap是栅格化图形.栅格化图形有很多缺点,比如文件体积比较大. 放大后失真. 不易编辑等等. 这 ...

  3. 模式自由(Schema-free)和数据存储的非格式化趋势

    最近遐想,数据存储的非格式化趋势. 格式化表格到自由的XML存储 数年以前,多家数据库厂商开始XML数据库存储.XML数据作为一种自描述的半结构化数据为Web的数据管理提供了新的数据模型,如果将XML ...

  4. MSSQL 查询分组前N条记录

    sql语句中,查询分组中前n条记录的sql语句如下 第一种方法 select * from consultingfeebill awhere n>(select count(*) from co ...

  5. ERROR:The requested URL could not be retrieved解决方法

    ERROR 错误 The requested URL could not be retrieved 您所请求的网址(URL)无法获取 While trying to retrieve the URL: ...

  6. Go语言相关图书推荐

    Go语言编程 作      者 许式伟 等 著 出 版 社 人民邮电出版社 出版时间 2012-08-01 版      次 1 页      数 245 印刷时间 2012-08-01 开      ...

  7. bzoj 3757 苹果树(树上莫队算法)

    [题意] 有若干个询问,询问路径u,v上的颜色总数,另外有要求a,b,意为将a颜色看作b颜色. [思路] vfk真是神系列233. Quote: 用S(v, u)代表 v到u的路径上的结点的集合. 用 ...

  8. Windows Azure存储容器私有,公共容器,公共Blob的区别

    当我们在Windows Azure中创建或编辑存储的容器时,需要选择访问类型,本文将描述一下这三个选项的区别. 1. 私有: 默认选项,顾名思义,用户不能通过URL匿名进行访问容器或容器内的任何Blo ...

  9. Java基础 —— CSS

    CSS:层叠样式表(Cascading Style Sheets) --> 提高显示功能,定义样式 html提供了div与span,只为了封装文本数据,div为一行数据,span为行内的数据. ...

  10. 基于gSOAP使用头文件的C语言版web service开发过程例子

    基于gSOAP使用头文件的C语言版web service开发过程例子 一服务端 1 打开VS2005,创建一个工程,命名为calcServer. 2 添加一个头文件calc.h,编辑内容如下: 1// ...