js:深入函数(函数是对象)
2014-04-29 16:41
309 查看
//由于函数是对象,所以可以直接把函数通过参数传递进来;也可以把函数作为返回值。
function calFun(fun,arg){
//第一个参数就是函数对象
return fun(arg);
}
function sum(num){
return num+100;
}
function say(str){
alert("hello "+str);
}
//调用了say函数
callFun(say,"js"); //hello js
//调用了sum函数
alert(callFun(sum,100)); //200
function fun1(arg){
var rel = function(num){
return arg+num;
}
return rel;
} //返回的是一个函数对象
//f是一个函数对象,可以完成调用
var f = fun1(20);
alert(f); //function(num){return arg+name;}
alert(f(30)); //50
var arr = [1,2,33,12,198];
arr.sort();
alert(arr); //1,12,198,33 对于js而言,默认是按照字符串进行排序的。
//如果我们希望通过数字大小来排序,可以通过如下方式:
function sortByNum(a,b){
return parseInt(a)-parseInt(b);
}
arr.sort();
alert(arr); //1,2,12,33,198
//根据对象来排序
function Person(name,age){
this.name=name;
this.age=age;
}
var p1 = new Person("John",23);
var p2 = new Person("Lemo",39);
var p3 = new Person("Ada",41);
var ps = [p1,p2,p3];
//ps.sort(sortByAge);
//ps.sort(sortByProperty("age"));
function sortByName(obj1,obj2){
return obj1.name>obj2.name?1:(obj1.name==obj2.name?0:-1);
} //按名字排序
function sortByAge(obj1,obj2){
return obj1.age-obj2.age;
} //按年龄排序
//通过上述方法来处理排序,带来的问题是需要为每一个属性创建一个函数,显然不灵活
//但是如果通过函数的返回值调用就不一样了。
function sortByProperty(propertyName){
var sortFun = function(obj1,obj2){
return obj1[propertyName]>obj2[propertyName]?1:(obj1[propertyName]==obj2[propertyName]?0:-1);
}
return sortFun;
}
原创文章如转载,请注明出处,本文首发于csdn网站:/article/11737935.html
function calFun(fun,arg){
//第一个参数就是函数对象
return fun(arg);
}
function sum(num){
return num+100;
}
function say(str){
alert("hello "+str);
}
//调用了say函数
callFun(say,"js"); //hello js
//调用了sum函数
alert(callFun(sum,100)); //200
function fun1(arg){
var rel = function(num){
return arg+num;
}
return rel;
} //返回的是一个函数对象
//f是一个函数对象,可以完成调用
var f = fun1(20);
alert(f); //function(num){return arg+name;}
alert(f(30)); //50
var arr = [1,2,33,12,198];
arr.sort();
alert(arr); //1,12,198,33 对于js而言,默认是按照字符串进行排序的。
//如果我们希望通过数字大小来排序,可以通过如下方式:
function sortByNum(a,b){
return parseInt(a)-parseInt(b);
}
arr.sort();
alert(arr); //1,2,12,33,198
//根据对象来排序
function Person(name,age){
this.name=name;
this.age=age;
}
var p1 = new Person("John",23);
var p2 = new Person("Lemo",39);
var p3 = new Person("Ada",41);
var ps = [p1,p2,p3];
//ps.sort(sortByAge);
//ps.sort(sortByProperty("age"));
function sortByName(obj1,obj2){
return obj1.name>obj2.name?1:(obj1.name==obj2.name?0:-1);
} //按名字排序
function sortByAge(obj1,obj2){
return obj1.age-obj2.age;
} //按年龄排序
//通过上述方法来处理排序,带来的问题是需要为每一个属性创建一个函数,显然不灵活
//但是如果通过函数的返回值调用就不一样了。
function sortByProperty(propertyName){
var sortFun = function(obj1,obj2){
return obj1[propertyName]>obj2[propertyName]?1:(obj1[propertyName]==obj2[propertyName]?0:-1);
}
return sortFun;
}
原创文章如转载,请注明出处,本文首发于csdn网站:/article/11737935.html
相关文章推荐
- 20180302JS的深入学习:函数的深入用法、函数的参数、JS内置对象、动态时钟及验证表单的练习、JS原型链的简单了解
- js深入研究之克隆,属性,数组,对象,函数
- js函数中this是全局变量还是当前对象
- 模仿JQuery.extend函数扩展自己对象的js代码
- js 用于检测类数组对象的函数方法
- 【JS深入学习】——函数创建和重载
- js客户端数据库的对象与函数
- js判断对象的某个属性是否为函数
- 关于Js函数对象的apply()和call()方法
- JS中的函数,Array对象,for-in语句,with语句,自定义对象,Prototype
- WEB前端-HF-HTML5Programming-笔记-CH4 JS对象与函数
- 深入理解js 中async 函数的含义和用法
- 从对象和函数(或称构造函数)两个维度理解js中的函数
- 深入理解js的变量提升和函数提升
- js打印对象 很有用的一个函数
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)
- easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- JavaScript学习之路<十二> JS面向对象程序设计--原型深入