如何找回微信支付密码码怎么修改

Javascript函数参数 返回值 调用例子-js教程-网页制作-壹聚教程网Javascript函数参数 返回值 调用例子
在js中函数的定义可以使用function函数,然后我们再可以在页面进行函数的调用与传值操作,下面整理了一些关于js函数的例子,希望对各位会有所帮助。
一,函数定义调用
Function(函数)类型实际上是对象。每个函数都是Function类型的实例,而且都与其他引用类型一样具备属性和方法,由于函数是对象,因此函数名实际上也是一个指向函数对象的指针。
(1)典型的函数声明
function slide(arguments){
(2)以函数表达式的形式定义函数
var slide = function(arguments){
虽然上面两种方式逻辑上是等价的,但是还是有点小区别:
区别一:例一中的函数会在代码执行以前被加载到作用域中,而例二则是在代码执行到那一行的时候才会有定 义
var loveddde = function(num1,num2){ //使用变量初始化
return num1+num2;
alert(loveddde(1,2));
function box(num1, num2){//普通函数声明
retrun num1+num2;
var box = new Function('num1','b', 'return num1+b');
//使用new的构造函数声明,函数是对象,函数名是指针。
函数调用自身,使用arguments.callee,实现递归
window是一个对象,而且是JS里面最大的对象,是最外围的对象
alert(typeof window); window是对象,类型是对象,window表示全局
alert(this); [object window] this目前表示的是window,因为在window的范围下
alert(typeof this)和window一模一样,所以this就是window
function sum(num){
if(num &=1){
return num*arguments.callee(num - 1);
alert(sum(4)); 4!
函数属性和方法
box.length
prototype属性
两个方法,apply()和call(),每个函数都包含这两种非继承而来的方法
function box(num1, num2){
return num1+num2;}
function sum(num1,num2){
return box.apply(this, [num1, num2]);
function sum2(num1, num2){
return box.apply(this,arguments);}
function sum3(num1, num2){
return box.call(this,num1,num2);}
var color = '红色的'; var box = { color=&蓝色的';};
function sayColor(){
alert(this.color);}
sayColor.call(box); //蓝色的
函数参数设置默认值
function simue (){
& var a = arguments[0] ? arguments[0] : 1;
& var b = arguments[1] ? arguments[1] : 2;
& return a+b;
alert( simue() ); //输出3
alert( simue(10) ); //输出12
alert( simue(10,20) ); //输出30
二、函数调用
1:方法调用模式。
请注意this此时指向myobject。
/*方法调用模式*/
&&& var myobject={
&&&&&&&&&&& value:0,
&&&&&&&&&&& inc:function(){
&&&&&&&&&&&&&&&&&&& alert(this.value)
&&&&&&&&&&&&&&& }
&&& myobject.inc()
2:函数调用模式
请注意this此时指向window
/*函数调用模式*/
&&& var add=function(a,b){
&&&&&&& alert(this)//this被绑顶到window
&&&&&&&&&&& return a+b;
&&& var sum=add(3,4);
&&& alert(sum)
3:构造器调用模式
语言精粹一书建议摒弃这中方式。因为有更好的方式。这里先不介绍。下次发表博文的时候贴出来。
会在这里加一个连接。
/*构造器调用模式& 摒弃*/
&&& var quo=function(string){
&&&&&&&&&&& this.status=
&&& quo.prototype.get_status=function(){
&&&&&&&&&&& return this.
&&& var qq=new quo(&aaa&);
&&& alert(qq.get_status());
4:apply调用模式
==我们可以来看一个更有用的apply实例。看最下面的代码。
&&& //注意使用了上面的sum函数
&&& //与myobject
&&& //这中调用方式的优点在于可以指向this指向的对象。
&&& //apply的第一个参数就是this指针要指向的对象
&&& var arr=[10,20];
&&& var sum=add.apply(myobject,arr);
&&& alert(sum);
看这个apply真正应用。bind这是一个绑定时间的函数
var bind=function(object,type,fn){
&&&&&&&&&&& if(object.attachEvent){//
&&&&&&&&&&&&&&&&&&& object.attachEvent(&on&+type,(function(){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& return function(event){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& window.event.cancelBubble=//停止时间冒泡
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& object.attachEvent=[fn.apply(object)];//----这里我要讲的是这里
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //在IE里用attachEvent添加一个时间绑定以后。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //this的指向不是到object对象本身所以。我们绑定的function里的this.id是无法正常工作的。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //但是如果我们用fn.apply(object)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //这里可以看出我们是把apply的第一个对象也就是this的指向变更给了object所以this.id就变成了
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& //object.id 可以正常工作了。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& })(object),false);
&&&&&&&&&&&&&&& }else if(object.addEventListener){//其他浏览器
&&&&&&&&&&&&&&&&&&&&&&& object.addEventListener(type,function(event){
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& event.stopPropagation();//停止时间冒泡
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& fn.apply(this)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& });
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&
&&& bind(document.getElementById(&aaa&),&click&,function(){alert(this.id)});
三、匿名函数
函数关键字(function )语句:
function fnMethodName(x) {
&&& alert(x);
&&& 函数字面量(Function Literals):
var fnMethodName = function (x) {
&&& alert(x);
&&& Function()构造函数:var fnMethodName = new Function('x', 'alert(x);')
&&&&&&& 上面三种方法定义了同一个方法函数fnMethodName,第1种就是最常用的方法,后两种都是把一个函数复制给变量fnMethodName,而这个函数是没有名字的,即匿名函数。实际上,相当多的语言都有匿名函数。
四、函数字面量和Function()构造函数的区别
虽然函数字面量是一个匿名函数,但语法允许为其指定任意一个函数名,当写递归函数时可以调用它自己,使用Function()构造函数则不行。
var f = function fact(x) {
&&& if (x && = 1)
&&&&&&& return 1;
&&&&&&& return x * fact(x - 1);
&&& Function()构造函数允许运行时Javascript代码动态的创建和编译。在这个方式上它类似全局函数eval()。
&&& Function()构造函数每次执行时都解析函数主体,并创建一个新的函数对象。所以当在一个循环或者频繁执行的函数中调用Function()构造函数的效率是非常低的。相反,函数字面量却不是每次遇到都重新编译的。
&&& 用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。var y = &global&;
function constructFunction() {
&&& var y = &local&;
&&& return new Function(&return y&); // 无法获取局部变量}alert(constructFunction()()); // 输出 &global&
&&& 和函数关键字定义相比Function()构造器有自己的特点且要难以使用的多,所以这项技术通常很少使用。而函数字面量表达式和函数关键字定义非常接近。考虑前面的区别,虽然有消息说字面量的匿名函数在OS X 10.4.3下的某些webkit的引擎下有bug,但我们平常所说的匿名函数均指采用函数字面量形式的匿名函数。更多详细内容可以阅读《JavaScript : The Definitive Guide,
&&& 5th Edition》的Functions那章。
五、匿名函数的代码模式
&&& 昨天hedger wang在他的blog介绍了几种匿名函数的代码模式:
&&& 错误模式:其无法工作,浏览器会报语法错。
&&& function () {
&&&&&&& alert(1);
&&& 函数字面量:首先声明一个函数对象,然后执行它
。(function () {
&&&&&&& alert(1);
&&& 优先表达式:由于Javascript执行表达式是从圆括号里面到外面,所以可以用圆括号强制执行声明的函数
。(function () {
&&&&&&& alert(2);
&&&&&&& ());
&&& Void操作符:用void操作符去执行一个没有用圆括号包围的一个单独操作数。
void function () {
&&&&&&& alert(3);
&&& 这三种方式是等同的,hedger wang因为个人原因比较喜欢第3种,而在实际应用中我看到的和使用的都是第1种
上一页: &&&&&下一页:相关内容由于primefaces在国内使用的并不是太多,因此,国内对jsf做系统、详细的介绍的资料很少,即使有一些资料,也仅仅是对国外资料的简单翻译或者是仅仅讲表面现象(皮毛而已),它们的语句甚至还是错误的,很可能会误导使用者。
相对来说,看国内的那些仅仅是翻译过来的文章或书籍不如直接看国外的官方文档或资料来的实在,在我讲述jsf页面中如何使用js调用后台bean方法之前,先给大家说几个国外的资料。在primefaces官方网站上,你可以搜索到几乎所有你需要的东西,primefaces官网为:&如过觉得自己英语不好的童鞋,可以前往primefaces国内镜像网站查阅资料:&&,只是国内的这个网站正在翻译中,有些东西还不完善;如果有想细致的了解primefaces的朋友,还可以下载primefaces的官方文档,最新的官方文档为5.2,全英文,我在这里给大家提供我下载好的primefaces官方文档:&,在这个文档里你可以通过他们的示例来组合出来很多有趣的东西。
好,接下来进入正文。
某些情况下,在开发jsf项目时,我们需要必须使用html组件来达到一些使用Jsf组件不能达到的目标。例如有时候我们希望,当触发某些html组件或标签时,触发后台方法甚至接收后台方法传过来的返回值。这回让我们很头疼,因为primefaces并没有给我们说如何使用js来调用后台bean方法。那么,我们就需要结合js和jsf同时才可以达到这个目的。
达到这个目的又两个方法。
1 使用jsf的inputHidden标签
这几乎算不上真正的js调用后台的方法,因为它无法向后抬bean传递值,但是简单的后台向页面传递数据可以使用这个方法
首先,在jsf中触发某个组件时,要及时update这个inputHidden标签,例如下面的组件
这里面的组件就会当这个下拉值变化时,就会触发后台的方法
onModuleChange()
当,方法结束后,它会update(刷新)这个
h:inputHidden
如果你的这个inputHidden中的值是随下拉的变化和变化的呢,那么,你就可以在任何的js函数中获取到这个inputHidden中的值,然后进行处理,
function getVlue() {
我这里的inputHidden 盛的是一个json格式的字符串,我通过js函数就可以动态的获取这个json,进而进行其他的操作。当然,可以在任何html标签中调用这个js函数,然后获取这个json字符串。
2 使用commandButton来达到复杂的异步刷新取值
在这里说下,普通的html标签结合js函数结合commandButton可以达到什么效果呢?那就是在你触发任何html标签时,你都可以通过这个commandButton组件来将你在html标签中选定的值传递到后台,经过后台bean处理后,它会返回处理结果,js函数就可以接收到这个处理结果,然后再将这个结果整合到其他的组件中。
首先,创建这个隐藏的commandButton,注意,这个commandButton本身不具有隐藏的属性,可以通过其他有隐藏属性的组件将其包裹,以达到隐藏的目的,我通过一个div来达到这个目的。在这个commandButton中,我们发现,action的作用就是当点击这个commandButton时,它会调用后台方法,而attribute中的name 属性和value属性的作用会在下面将。
然后我们需要一个普通的html标签,就以一个普通的html button为例:
&input type="button" value="回调测试" onclick="test()" /&
然后写一个js函数,来连接这个普通的button和jsf组件commandButton
function test() {
$('#command').click();
这个函数的意思就是,当你点击这个"回调测试"的按钮时,它就相当于触发了jsf的cimmandButton按钮,这时,commandButton中的两个
&f:attribute name="attrname1" value="liu" /&
中的两个属性就会自动绑定成一个类似于map形式的数据,name属性的值作为key,value中的值作为map中的value,它们将会被传递至后台。
然后,后台的bean 中需要有方法来接收两个值:
public void testReturn(ActionEvent event) {
String attrvalue1 = (String) event.getComponent().getAttributes()
.get("attrname1");
String attrvalue2 = (String) event.getComponent().getAttributes()
.get("attrname2");
System.out.println(attrvalue1);
System.out.println(attrvalue2);
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.addCallbackParam("isValid", true);
在上面的代码中,我们可以看到,java程序已经成功的接收前端页面传过来的值,它最后也返回了一个类是于map格式的值,key为:isValid,value 为:true
最后,我们要写一下页面如何接收后台传递过来的值:
接下来,就会发现不仅仅后台可以正常打印出前端页面中的那两个值,同时前端的js函数也可以打印出后台传过来的值,当然,同样的,从前端传递到后台的值的个数和形式,你可以自己改,同时从后台接收到的数据,你也可以随意的进行任何操作。
但是请注意,这个
p:commandButton
组件有个问题,就是你不可以动态的通过js函数来将一些值赋给这个组件,但是这个组件里的值可以接受后台的属性值
&f:attribute name="attrname1" value="#{bean.val}" /&
这样其实也并没有达到我们想要通过js来传给后台bean的目的,接下来的方法,就可以完全达到通过js动态的传值给后台bean方法,bean方法处理完返回数据给js。
3 使用p:remoteCommand来达到复杂的异步刷新取值
大家请注意,这个方法可以真正的解决在jsf中通过js调用后台bean方法并获取bean方法返回值的问题。
同样,首先我们要写两个jsf组件,来和后台bean结合
解释一下,上面的的这个inputHidden的作用是接收后台bean处理后的返回值。remoteCommand的作用是将js中的动态的值传递到后台bean方法。
js函数使用方法在代码中,谁不懂可以再艾特我,这里不再解释。
最后是后台bean方法代码:
public void testReturn() {
String selectedValue = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("setVal");
System.out.println("------&"+selectedValue);
至此,jsf中使用js函数将普通的html组件的值动态的传递到后台bean方法并接受后台处理结果已经成功得到解决。
阅读(...) 评论()js弹窗返回值详解(window.open方式)
字体:[ ] 类型:转载 时间:
本篇文章主要介绍了js弹窗返回值(window.open方式)。需要的朋友可以过来参考下,希望对大家有所帮助
代码如下:&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"& &html xmlns="http://www.w3.org/1999/xhtml"& &head& &meta http-equiv="Content-Language" content="utf-8" /& &meta http-equiv="Content-Type" content="text/ charset=utf-8" /& &meta name="author" content="脚本之家(MyZ)" /& &meta name="Copyright" content="脚本之家(MyZ)" /& &meta name="description" content="" /& &meta name="keywords"content="" /& &link rel="icon" href="" type="image/x-icon" /& &link rel="shortcut icon" href="" type="image/x-icon" /& &link href="" rel="stylesheet" type="text/css" /& &title&&/title& &script type="text/javascript"& &!-- function winOpen() { &&&&&& window.open ("test2.php", "", "height=400, width=400"); } --& &/script& &/head& &body& &textarea id="text1" name="text1"&&/textarea& &input type="button" value="submit" name="submit" onclick="javascript:winOpen();" /& &/body& &/html& &/body& &/html& test2.php
代码如下:&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"& &html xmlns="http://www.w3.org/1999/xhtml"& &head& &meta http-equiv="Content-Language" content="utf-8" /& &meta http-equiv="Content-Type" content="text/ charset=utf-8" /& &meta name="author" content="脚本之家(MyZ)" /& &meta name="Copyright" content="脚本之家(MyZ)" /& &meta name="description" content="" /& &meta name="keywords"content="" /& &link rel="icon" href="" type="image/x-icon" /& &link rel="shortcut icon" href="" type="image/x-icon" /& &link href="" rel="stylesheet" type="text/css" /& &title&&/title& &script type="text/javascript"& &!-- function winBack() { &&&&&& if(window.opener) { &&&&&&&&&&&&& fWindowText1 = window.opener.document.getElementById("text1"); &&&&&&&&&&&&& fWindowText1.value = fWindowText1.value + "mayongzhan"; &&&&&&&&&&&&& window.close(); &&&&&& } } --& &/script& &/head& &body& &input type="button" name="back" value="back" onclick="javascript:winBack();" /& &/body& &/html& window.open详解
window.open("sUrl","sName","sFeature","bReplace");
sUrl:可选项。字符串(String)。指定要被加载的HTML文档的URL地址。假如无指定值,则about:blank的新窗口会被显示。
sName:可选项。字符串(String)。指定打开的窗口的名字。这个名字可以用于form或a对象的TARGET属性。此名字也可以使用下列通用名称:_media:IE6.0在浏览器左边的媒体面板内打开sUrl。
_blank:在新窗口中打开sUrl。 _parent:在当前框架的父框架内打开。假如当前框架无父框架,此参数值等同于_self。 _search:IE5.0在浏览器左边的搜索面板内打开sUrl。 _self:sUrl在当前窗口中打开,覆盖当前文档。 _top:在所有框架之外的最顶层窗口中打开sUrl。假如当前窗口无框架结构,此参数值等同于_self。
sFeatures:可选项。字符串(String)。指定窗口装饰样式。使用下面的值。多个之间用逗号隔开。只有当新的浏览器窗口被建立时,此参数的设置才会发生作用。channelmode={yes|no|1|0}指定是否将窗口显示为频道模式。默认值为no。
directories={yes|no|1|0}指定是否显示「链接」按钮。默认值为yes。 fullscreen={yes|no|1|0}指定是否以全屏方式显示窗口。默认值为no。要小心使用全屏模式,因为这种模式会隐藏浏览器窗口的标题栏和菜单。如果没有在页面内提供关闭窗口的功能,用户可以使用ALT+F4快捷键关闭窗口。 height=number设置窗口的高度。最小值为100。 left=number设置窗口左上角相对于桌面的横坐标。单位为像素(px)。 width=number设置窗口的宽度。最小值为100。 top=number设置窗口左上角相对于桌面的纵坐标。单位为像素(px)。 location={yes|no|1|0}设置是否显示浏览器窗口的地址栏。默认值为yes。 menubar={yes|no|1|0}设置是否显示浏览器窗口的菜单栏。默认值为yes。 resizable={yes|no|1|0}设置窗口是否允许被用户改变尺寸。默认值为yes。 scrollbars={yes|no|1|0}设置窗口是否可以具有滚动条。默认值为yes。 status={yes|no|1|0}设置是否显示浏览器窗口的状态栏。默认值为yes。 titlebar={yes|no|1|0}设置是否显示浏览器窗口的标题栏。除非调用程序是HTML应用程式(HTA)或被信任的对话框,否则此参数将被忽略。默认值为yes。toolbar={yes|no|1|0}设置是否显示浏览器窗口的工具条。默认值为yes。 bReplace:可选项。布尔值(Boolean)。false|true。false:新打开的文档覆盖历史列表里的当前文档。true:文新打开的文档被简单的添加到历史列表的最后。
返回值: oNewWindow:对象(Element)。返回对新的window对象的引用。
说明: 打开新窗口并载入sUrl指定的HTML文档。默认情况下,此方法建立的新窗口具有默认的高度、宽度,以及菜单、工具条等。您可以使用sFeatures参数改变它们的设置。
当sFeatures参数被指定时,没有在参数值的列表中出现的装饰样式都会被自动设置为no。
IE5+中允许控制打开的窗口的标题栏。通过在被信任的程序像Microsoft?VisualBasic或者HTML应用程式(HTA)中打开窗口可以关闭标题栏。他们是可信任的因为他们使用Microsoft?InternetExplorer作为浏览器接口。
当文档内的对象上的事件(event)激发的函数调用open方法时,window对象的open方法被使用。而当文档内的对象上的事件(event)直接使用open方法时,document对象的open方法被使用。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 微信支付密码无银行卡 的文章

 

随机推荐