前言,我们写js的时候,经常会看到一些方法,比如说:
$("#ids").click(function(
alert("Click me");
)); ---------------------------------------------------- $.ajax({
url:url,
success:function(data){
alert("SUCCESS");
},
error:function(e){
alert("ERROR");
}
});
又或者说
var http = new XMLHttpRequest();
http.onreadystatechange = go;
........ function go(){
alert();
}
大家应该会看到一个特点,这里面的js,都是以一个方法作为参数的,那么,它是怎么实现的呢?
一:以方法作为参数
这下来说直接以一个方法来作为参数的写法,直接上代码:
-----------这样调用的方法-------------
go(function(){
alert("success");
});
那么,这样直接以一个function作为参数,那么go方法要如接收呢?
-------------以这样的形式接收并调用,这里显示两种方法调用-----------------
function go(fn){
alert("执行go方法");
//下面两种方式都可以
fn();
fn.call(this);
}
二:以方法名作为参数
如果参数里面是一个方法的名称,在我拿到这个方法名称的时候,我要如何去调用这个方法呢?
-------------------调用的方式是这样的---------------------
go("hello");//hello是一个方法名称
接收并执行的方式是这样的
-----------------接收并执行------------------
function go(fn){
alert("执行hello方法")
//这是调用方法
window[fn].call(this);
}
我们可以拿到window[方法名称].call(this);
里面的this,代表着一个对象,如果需要对象来执行这个方法的时候,就需要写,否则的话,参数可以不写
JavaScript中以一个方法作为参数的写法的更多相关文章
-
JS中以一个方法作为参数的写法
一:以方法作为参数 这下来说直接以一个方法来作为参数的写法,直接上代码: -----------这样调用的方法------------- go(function(){ alert("succ ...
-
javascript中,一个js中的函数,第一句var _this = this;为什么要这样做?
javascript中,一个js中的函数,第一句var _this = this;为什么要这样做? 下面是源码: 下面这段代码是常用的网站首页,自动切换span或者tabbar来变更List显示内容的 ...
-
javascript中的splice方法介绍&;示例
javascript 中的 splice 方法很强大,它可以用于插入.删除或替换数组的元素. 下面来一一介绍! 删除:用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数 ...
-
javascript中的toString()方法
javascript中的toString()方法,主要用于Array.Boolean.Date.Error.Function.Number等对象.下面是这些方法的一些解析和简单应用,做个纪律,以作备忘 ...
-
eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...
-
JavaScript中的工厂方法、构造函数与class
JavaScript中的工厂方法.构造函数与class 本文转载自:众成翻译 译者:谢于中 链接:http://www.zcfy.cc/article/1129 原文:https://medium.c ...
-
vue中methods一个方法调用另外一个方法
转自http://blog.csdn.net/zhangjing1019/article/details/77942923 vue在同一个组件内: methods中的一个方法调用methods中的另外 ...
-
在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考原贴地址:https://blog.csdn.net/clementad/article/details/47339519 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Trans ...
-
【转】在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考 原文链接 @Transactional does not work on method level 描述 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational) ...
随机推荐
-
quick-cocos2d-x 2.2.3 rc版本中 crypto.md5file() 的C++实现在ANDROID上有BUG
原来的版本是用fopen打开文件的,如果要从ANDROID的APK中取文件,直接就洗白了修改如下 void CCCrypto::MD5File(const char* path, unsigned c ...
-
leetcode 383. Ransom Note
Given an arbitrary ransom note string and another string containing letters from all th ...
-
测试的rtsp地址
无线城市 千里眼 http://218.204.223.237:8081/wap/show_video.php?vd=1 右键->复制链接地址即可获得Rtsp地址.
-
UITextView 动态高度计算(iOS7版)
NSDictionary *attrsDictionary = [NSDictionarydictionaryWithObject:[UIFontsystemFontOfSize:kCellConte ...
-
phpmyadmin数据导入最大限制的解决方法
mysql导入文件最大限制更改解决方法:phpmyadmin库导入出错:You probably tried to upload too large file. Please refer to doc ...
-
python 参议院文本预处理的一维数组的间隔空间
#!/usr/bin/python import re def pre_process_msg ( msgIn ): if msgIn=="": retur ...
-
Java 日期与字符串的转换
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...
-
Jasper_dataSource_CSV data source config
(1) open eclipse Repository Explorer Window->Show View->Other-> Repository Explorer-> ...
-
split a string in C++
This is my favourite way to iterate through a string. You can do what you want per word. string line ...
-
Linux - 简明Shell编程12 - 定制输出(ColorOutput)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo -e "\ ...