`
uuhorse
  • 浏览: 64852 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Js中动态调用指定名称的Function

 
阅读更多

1、Js中打印function的代码:

function f() {}

// 输出"function f() {}"
console.debug(f.toString());

 

2、指定名称动态调用function

function f() {}

// 指定名称调用f
eval('f();');

 

特别注意eval执行的上下文:

function f(v) {
    console.debug(v);
}

var value = 'global';

function action() {

    var value = 'local';

    // 打印'local'
    eval('f(value)');

    // 打印'value'
    eval('f("value")');
}

 

eval中传递参数较为麻烦,且易出错。

 

3、考虑Js对象操作"."号和"[]"的作用

我们可以通过"[]"动态指定属性名获取对象中的属性,且认为所有的function及对象均是window对象的属性(定义在window作用域中),我们动态调用f方法如下:

// f(); 等效于 window.f();
var fname = 'f';
window[fname](args...);

如此我们即可动态调用f,并根据需要传递参数;

 

思考:若f不是定义在window下当如何,var obj = {   f : function() {} } // 函数名即为"obj.f"

 

var obj = {
    f : function(value) {
        console.debug(value);
    }
}

var fname = "obj.f";

// Error:window[fname]();
// Ok: window['obj']['f']();

 

 

 

分享到:
评论

相关推荐

    WebView使用总结3(应用函数与JS函数互相调用)

    除了JavaScript调用Java方法,Android应用也可以通过WebView的`loadUrl()`方法来调用JavaScript函数。例如,如果我们有一个JavaScript函数`sayHello()`,可以这样调用: ```java webView.loadUrl("javascript:...

    js中iframe调用父页面的方法.docx

    3. **指定iframe名称进行调用** 如果有多个`iframe`,可以使用`document.frames`或`window.frames`来指定特定的`iframe`。例如,如果`iframe`的name属性是`card-iframe`,则可以这样调用其内部的方法: ```...

    JavaScript程序设计课件:函数的调用方式.pptx

    JavaScript程序设计 函数的调用方式 5.2.2 函数的调用方式 概念 当函数定义完成后,要想在程序中发挥函数的作用,必须...call 和 apply 是 Function 的原型方法,它们能够将特定函数当做一个方法绑定到指定对象上,并进

    js与applet相互调用的方法.docx

    这里`call`方法用于调用指定名称的JavaScript函数,并可以传入参数。 #### 四、示例 为了更好地理解JS与Applet之间的相互调用,下面给出一个简单的示例。 ##### 4.1 HTML页面 ```html <!DOCTYPE html> ...

    arcgis webgis基于js的gp发布与调用

    下面是一个简单的示例代码,演示如何使用JavaScript调用一个GP服务: ```javascript // 引入ArcGIS JSAPI库 require([ "esri/tasks/ServiceAreaTask", "esri/tasks/ServiceAreaParameters" ], function...

    Java直接运行JS代码

    使用GraalVM的JavaScript引擎与Nashorn类似,但需要指定引擎名称为`nashorn`或`graal.js`: ```java ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(...

    function_exists函数详解

    1. **动态函数调用前的检查**:在实际开发中,有时候我们需要根据不同的条件来决定调用哪个函数。此时,可以先使用 `function_exists()` 来确保该函数已被定义,避免运行时错误。 2. **框架或类库兼容性检测**:在...

    javascript动态添加表格数据行

    在JavaScript编程中,动态添加表格数据行是一种常见的需求,特别是在构建交互式的Web应用程序时。这个功能允许用户在不刷新整个页面的情况下添加新的记录,提高了用户体验。在这个例子中,我们将探讨如何利用...

    58种标签调用DedeCMS5.6标签调用总汇[文].pdf

    {dede:onetype typeid='ID'}[field:typename /]{/dede:onetype} 标签可以用来调用指定的栏目标签,方便开发者在模板中使用。 频道栏目调用标签 {dede:channel type='self'}<li><a href='[field:typelink/]'>[field...

    JavaScript通过字符串调用函数的实现方法

    在实际应用中,我们可能会通过用户输入或者从某个配置中动态获取函数名和参数。例如,我们可以在HTML中创建输入框供用户输入函数名和参数,然后通过一个按钮点击事件来触发函数调用。 ```html !!"> ...

    jquery调用webservice总结

    .asmx/GetWords", //调用 WebService 的地址和方法名称组合 ---- WsURL/方法名 data: JSON.stringify({ word: 'example' }), //传递参数,使用 JSON.stringify 将对象序列化为 JSON 格式 dataType: 'json', success:...

    调用浏览器中的打印功能

    例如,`SetMarginMeasure`用于设置边距单位,`SetPageRange`指定打印的页面范围,`printer`设置打印机名称,`copies`和`collate`分别设置打印份数和是否按顺序装订。 2. 使用WebBrowser控件(适用于IE和其他支持...

    jsp页面js调用form表单的值的方法

    ### JSP 页面中 JS 调用 Form 表单的值的方法 在 Web 开发中,JSP(Java Server Pages)是一种广泛使用的服务器端技术,它允许开发者将动态内容嵌入到静态 HTML 页面中。本篇文章主要介绍如何在 JSP 页面中通过 ...

    用js模拟struts2的多action调用示例

    在Struts2.1版本中,可以通过在submit标签中指定Action名称,配合动态方法调用来实现。但在升级到Struts2.3之后,可能会遇到动态方法调用失效的情况,这可能是由于框架内部的改变导致的bug。 为了解决这个问题,...

    js调用xml文件的多层属性和节点

    在JavaScript(JS)中调用XML文件涉及到XMLHttpRequest对象或者现代浏览器中的fetch API,用于从服务器获取XML数据,然后通过DOM解析和操作这些数据。在处理XML文件时,特别是涉及多层属性和节点的情况,我们需要...

    JavaScript调用java方法——dwr步骤.docx

    - 在JSP文件中引入DWR所需的JavaScript库,然后通过JavaScript调用Java方法: ```html <title>DWR Example <script type="text/javascript" src="/path/to/dwr/engine.js"> <script type="text/...

    WebAssembly和c++互相调用的代码实现

    **JavaScript调用WASM:** 1. 加载WebAssembly模块,使用`WebAssembly.instantiateStreaming`或`fetch` + `WebAssembly.instantiate`。 2. 获取导出的函数引用,如`instance.exports.your_function_name`。 3. 调用...

    一个实现ActionScript 与JavaScript 进行相互通信的程序例子

    这可以通过在Flash的AS3代码中添加`flash.external.ExternalInterface.addCallback`方法来实现,指定一个ActionScript方法和JavaScript可以调用的名称。 2. **定义可调用的ActionScript方法**:在ActionScript中...

    javascript经典特效---动态选择背景色.rar

    3. **颜色值与变量**:在JavaScript中,我们可以使用十六进制(如`#ff0000`)、RGB(如`rgb(255, 0, 0)`)、RGBA(带有透明度)或者颜色名称(如`red`)来表示颜色。如果需要动态改变背景色,通常会定义一个变量来...

    JavaScript中指定函数名称的相关方法

    尽管可以为函数表达式指定名称,但在大多数实际应用中,这种做法并不常见,因为这种内部名称对外部代码的可访问性有限。在学习JavaScript的过程中,需要通过实际编程练习来熟练掌握这些基本概念和技巧,从而编写出...

Global site tag (gtag.js) - Google Analytics