WebView JS 交互
- - ITeye博客WebView加jquery做页面会怎么样呢. // 创建WebView对象. // 把programList添加到js的全局对象window中,. // 这样就可以使用window.programList来获取数据. * 定义js回调java函数. // 绑定键盘的向上,向下按钮事件触发相应的js事件.
js函数几个重要内容:
js中不存在函数重载,如果定义了多个同名函数,最后一个会覆盖掉前面所有函数。
1:Arguments对象(可以实现模拟重载的效果)
利用arguments对象的length属性,可以获取函数接收的参数的个数
例如:
function add(){ if(arguments.length == 2){ return arguments[0] + arguments[1]; }else if(arguments.length == 3){ return arguments[0] + arguments[1] + arguments[2]; } } add(2,4); //output 6 add(2,4,5); //output 11
2:变量的作用域
在js中定义变量是可以不用var修饰符的,定义局部变量时,如果没有使用var修饰符,
js会自动将这个变量定义为全局变量
例如:
var a = "a"; function fn(){ b = "b"; alert(a); //output a alert(b); //output b } fn(); alert(a); //output a alert(b); //output b
全局变量和局部变量同名,函数在调用时,会寻找局部变量(js中,局部变量的优先级高于全局变量)
例如:
var a = "a"; //定义并初始化变量a function fn(){ //函数fn加载,未调用 alert(a); //output undefind var a = "b"; //定义变量a,但未初始化 alert(a); //output b } fn(); //调用函数fn alert(a ); //output a
3: js中的几种特殊函数
(1)匿名函数:(可以将函数作为参数传递)
可以定义某个匿名函数来执行某些一次性任务
function(参数){方法体}
例如:
function add(a, b){ return a() + b() ; } var one = function(){ return 2; }; var two = function(){ return 4; }; alert(add(one,two)); //output 6
one 和 two 是函数
调用函数 add() 时,将 one 和 two 函数作为参数传递
函数 add() 在调用时,分别执行了函数 one 和 two
将函数 one 和 two 的运算结果,再次进行运算
这时,函数 one 和 two 就叫做回调函数
(2)回调函数:就是以函数作为参数传递给另外的函数来调用,作为参数的函数就叫做回调函数
alert( add( function(){return 2;}, function(){return 4;} ) ); //output 6
这里作为参数传递的匿名函数,就叫做匿名回调函数
(3)自调函数:(一般情况下,自调函数封装的函数都是匿名函数)用来执行某些一次性任务
第一个小括号:封装函数
第二个小括号:调用封装的函数
例如:
不含参数:
( function(){ alert("javaScript"); } )();
含有参数:
( function(str){ alert(str); } )("hello");
(4)私有(内部)函数:
节省了全局的命名空间
保证了私有性:只能自己范围内使用,外部不能访问
例如:
function fn(){ var a = "hello"; function n(){ return a + "javaScript"; }; return n(); } alert(fn()); //output hello javaScript alert(n()); //output undefind
(5)返回函数的函数:
例如:
function fn(){ //逻辑 return function(){ //逻辑 return "javaScript"; }; } alert(fn()); //output function(){return "javaScript";} //要打印“javaScript” alert(fn()()); //output javaScript var fun = fn(); alert(fun()); output javaScript