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