<!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. java生成简单Excel工作薄

    前言: 代码都是建立在实际需求上的,上周做完一个调外部电影券接口的项目,这周产品又要excel表格,大致内容为:券所属影院.图片URL.等信息制作为excel表格,把每次同步过来的数据给他分析. jx ...

  2. POJ 1942 Paths on a Grid

    // n*m 的格子 从左下角走到右上角的种数// 相当于从 n+m 的步数中选 m 步往上走// C(n+m,m) #include <iostream> #include <st ...

  3. Arduino 电平转换 升压 OUTPUT与9V/12V元件通信

    原因 网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程.但是如果想驱动高于5V电压的芯片,就找不到教程了.因此今天我来介绍一种方式,能让Ardu ...

  4. CSS隐藏元素的几种妙法

    一说起CSS隐藏元素,我想大部分小伙伴们都会想到的第一种方法就是设置display为none.这是最为人所熟知也是最常用的方法.我相信还有不少人想到使用设置visibility为hidden来隐藏元素 ...

  5. 为我所用之Monkey

    文章由来:有朋友问到Monkey的使用的问题,就整理一下Monkey的基本使用,以备后用查询. Monkey是一Android中的一个命令行工具,eclipse中有自带此工具,可以运行在模拟器以及真实 ...

  6. Eclipse安装配置PyDev插件

    Eclipse安装配置PyDev插件 关于PyDev PyDev是一个功能强大的 Eclipse插件,使用户可用 Eclipse 来进行 Python 应用程序的开发和调试.PyDev 插件的出现方便 ...

  7. IT智力题

    题目1:你让工人为你工作7天,给工人的回报是一根金条.金条平分成相连的7段,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你 如何给你的工人付费? 答案:两次弄断就应分成三份,我把金条分 ...

  8. fork()函数

    现代操作系统提供的三种构造并发程序的方法: •进程 一个进程实体包括:代码段,数据段, 进程控制块 fork()函数:通过系统调用创建一个与原来一模一样的子线程,[用来处理请求信号,而父进程继续一直处 ...

  9. js遇到这样基础题,看你能不能作对呢

    var a = (function() { return typeof arguments; })(); alert(a); //Object var b = (function(x) { delet ...

  10. 文本框的onchange事件,如何兼容各大浏览器

    在项目中经常会遇到对用户输入的数据进行实时校验,而不是等文本框失去焦点或用户手动点击校验. 首先分析下在哪些情况下文本框会产生change事件. 1.用户通过键盘入正常字符时: 2.用户通过键盘输入非 ...