js 函数的传值问题
<!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 函数的传值问题的更多相关文章
- JSF页面中使用js函数回调后台bean方法并获取返回值的方法
由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统.详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的, ...
- jsp想js,action传值
1.struts2 action如何向JSP的JS函数传值 action中定义变量 public class TestAction extends ActionSupport implements S ...
- JSF页面中使用js函数回调后台action方法
最近遇到了一个问题就是在JSF页面中嵌入html页面,这个html页面中很多功能是使用js动态生成的,现在需要在js函数里想去调用JSF中action类method()方法并动态传送数据给后台进行处理 ...
- js获取url传值的方法
这篇文章主要介绍了js获取url传值的方法,实例分析了字符串分割与正则分析两种方法,并补充了一个基于正则匹配实现的js获取url的get传值函数,需要的朋友可以参考下 js获取url参数值: inde ...
- jsp js action之间传值
1.struts2 action如何向JSP的JS函数传值 action中定义变量 public class TestAction extends ActionSupport implements S ...
- 前端实操案例丨如何实现JS向Vue传值
摘要:项目开发过程中,组件通过render()函数渲染生成,并在组件内部定义了自定义拖拽指令.自定义拖拽指令规定了根据用户可以进行元素拖拽.缩放等一系列逻辑处理的动作. 本文分享自华为云社区<[ ...
- 3.3 js函数
1.函数语法: 函数声明的方式:function 函数名(参数1,参数2-){//函数体;}函数调用:函数名(参数1,参数2-); 函数内不一定都指定返回值. 如果需要指定返回值,可用 return ...
- Js函数function基础理解
正文:我们知道,在js中,函数实际上是一个对象,每个函数都是Function类型的实例,并且都与其他引用类型一样具有属性和方法.因此,函数名实际上是指向函数对象的指针,不与某个函数绑定.在常见的两种定 ...
- js函数表达式和函数声明的区别
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...
随机推荐
- .htaccess 文件的使用
用于服务器对文件夹的控制 官方解释为 :分布式配置文件 ,提供了针对目录改变配置的方法; 项目可以有多个这样的配置文件,子目录文件会覆盖父目录的配置 在apache(这里泛指服务器)中,/conf/v ...
- 定时组件quartz系列<三>quartz调度机制调研及源码分析
quartz2.2.1集群调度机制调研及源码分析引言quartz集群架构调度器实例化调度过程触发器的获取触发trigger:Job执行过程:总结:附: 引言 quratz是目前最为成熟,使用最广泛的j ...
- linux 下RMAN备份shell脚本
RMAN备份对于Oracle数据库的备份与恢复简单易用,成本低廉.对于使用非catalog方式而言,将RMAN脚本嵌入到shell脚本,然后再通过crontab来实现中小型数据库数据库备份无疑是首选. ...
- nginx upstream的几种配备方式
nginx upstream的几种配置方式 nginx 的upstream目前支持4种方式的分配 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔 ...
- UIImageView 点击放大缩小
static CGRect oldframe; -(void)showImage:(UIImageView *)avatarImageView{ UIImage *image=avatarImageV ...
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_all_from_list(self, locator)
def select_all_from_list(self, locator): """Selects all values from multi-select list ...
- python27+django1.9创建app的视图及实现动态页面
一.简易静态视图 views文件里写: from django.http import HttpResponse def hello(request): return HttpResponse(&qu ...
- 图的邻接表存储表示(C)
//---------图的邻接表存储表示------- #include<stdio.h> #include<stdlib.h> #define MAX_VERTEXT_NUM ...
- ifstream 流 判断文件是否结尾的函数eof(.xml
pre{ line-height:1; color:#800080; font-size:16px;}.sysFunc{color:#627cf6;font-style:italic;font-wei ...
- C语言的 (强制类型转换) 以及 '字符字面值'
C语言的显式/隐式类型转换,都有一个中间变量的存在,原数据的类型.内容都不变. 以下代码,都用GCC编译. #include<stdio.h> int main() { char c = ...