<!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. mysql 表日常变化前几

    mysql 表日常变化前几use performance_schema create table test.snap1 as SELECT OBJECT_SCHEMA, OBJECT_NAME, CO ...

  2. Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史.

    官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ 百度云盘下载地址: http:/ ...

  3. Android的Adapter用法

    1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(ListView,GridView)等地方都需要用到Adapter.如下图直 ...

  4. 让 PowerDesigner 支持 SQLite!

    让 PowerDesigner 支持 SQLite!   PowerDesigner是一个功能强大的数据库设计软件,最近正在用其设计新系统的数据库,但由于在项目初级阶段,希望使用轻量级的 SQLite ...

  5. 关于COUNT STOPKEY的工作机制(转载)

    SQL> select rownum rn ,a.* from cnmir.ew_auctions a where rownum<50000; Execution Plan-------- ...

  6. 二级指针的作用及用途 .xml

    pre{ line-height:1; color:#9f1d66; background-color:#e1e1e1; font-size:16px;}.sysFunc{color:#5d57ff; ...

  7. STL1-unordered_map

    最近几天我要整理一下遇到的STL的函数,本来其实我是没有打算学的,认为用C就完全可以实现,干嘛要记那么多复杂的函数呢,所以我之前的做法都是将常用的C函数自己做了一个lib库,使用起来也是蛮方便的呢,但 ...

  8. Web表格

    HTML元素学习 1:表格:表格的作用是显示表格数据,小范围内布局 表格的框架 <!doctype html> <html lang="en"> <h ...

  9. 转来的 cuda makefile 写法学习

    原文作者:FreeAquar 原文出处:http://www.cnblogs.com/FreeAquar/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 ...

  10. 推荐一个网站Stack Overflow

    网站URL:http://stackoverflow.com 我是怎么知道这个网站的呢?其实这个网站非常出名的,相信许多人都知道.如果你不知道,请继续阅读: 一次我在CSDN上面提问,但是想要再问多几 ...