`
uuhorse
  • 浏览: 64199 次
  • 性别: 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']();

 

 

 

分享到:
评论

相关推荐

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

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

    javascript函数的解释

    47.当在超链接中调用JS函数时用:(javascript:)来开头后面加函数名 48.在老的浏览器中不执行此JS:<!-- //--> 49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"> 50.指定在不支持脚本的浏览器显示...

    js中匿名函数的创建与调用方法分析

    本文实例分析了js中匿名函数的创建与调用方法。分享给大家供大家参考。具体实现方法如下: 匿名函数就是没有名字的函数了,也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数...

    107个常用javascript语句

    47.当在超链接中调用JS函数时用:(javascript :)来开头后面加函数名 48.在老的浏览器中不执行此JS:<!-- //--> 49.引用一个文件式的JS:<script type="text/javascript" src="aaa.js"> 50.指定在不支持脚本的浏览器显示...

    javascript入门笔记

    Javascript,简称为 JS,是一款能够运行在 JS解释器/引擎 中的脚本语言 JS解释器/引擎 是JS的运行环境: 1、独立安装的JS解释器 - NodeJS 2、嵌入在浏览器中的JS解释器 JS的发展史: 1、1992年 Nombas 开发...

    JavaScript笔记

    4.变量:js中的变量不需要提前指定类型,由赋值时动态决定 所有的变量都用var声明 5.数据类型: |--String(字符串类型) |--Number(数字类型) |--Boolean(布尔类型)0、-0、null、""、false/undefined或NaN,则该...

    javascript学习笔记.docx

    5) in可以检查指定字符串是否是一个对象的基本属性或方法名称;instanceof运算符返回左边的对象是否右边类的一个实例;delete可以删除一个属性,它不会影响到属性关联的对象的生存,若该属性不存在会返回true;[]...

    微软JavaScript手册

    hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的数据类型。 if...else 语句 根据表达式的值,有条件地执行一组语句。 ...

    DWR.xml配置文件说明书(含源码)

    从java中传递null值到javascript是没有任何危险性的,所以DWR将这个作为默认的converter,所以你自己不用再把这个converter添加到配置文件的部分中去. 基本类型的converter转换int,boolean,double等.当然还包括对应的...

    javascript文档

    hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的数据类型。 if...else 语句 根据表达式的值,有条件地执行一组语句。 ...

    jQuery详细教程

    如果您的网站包含许多页面,并且您希望您的 jQuery 函数易于维护,那么请把您的 jQuery 函数放到独立的 .js 文件中。 当我们在教程中演示 jQuery 时,会将函数直接添加到 <head> 部分中。不过,把它们放到一个单独的...

    jquery-1.1.3 效率提高800%

    jQuery会自动调用正确的方法名称来代替查询字符串,执行你指定的回调函数。或者,你也可以指定jsonp的数据类型的回调函数,此函数会自动添加到Ajax请求中。 参数选项: async(true) 数据类型: Boolean ...

    视频分享系统源码 VideoSharingSystem.rar

    <script type="text/javascript" src="@InstallDir@js/common.js"></script> movcms内核js框架库 <!--在模板文件中制作个性搜索表单--> ()"> 影片或主演" > 提交" /> 相关调用 评论:评论显示区 评分:...

    CondiLoader:JavaScript和CSS的条件异步加载程序脚本

    如果是这样,脚本将加载指定CSS和JavaScript,调用init函数或使用指定名称触发事件。 这样就可以在一个位置列出该站点的所有JavaScript和CSS,但仅加载当前页面真正需要的那些JavaScript和CSS。 用法: 有两种使用...

    供求二手信息网站系统源代码-

    §4、代码调用:<script language="JavaScript" src="js.asp?lx=1&num=6&words=15&dl=12&tj=ok&showlx=ok"> 调用说明: lx为信息类型:供应:1 求购:2 要闻:3 动态:4 招聘:5 求职:6 展会:7 其它:8 num为调用...

    正则表达式

    我们已经发现了,在正则表达式中所有的字母字符和数字都是按照字面意思与自身相匹配的.JavaScript的正则表达式还通过以反斜杠(\)开头的转义序列支持某些非 字母字符.例如,序列 "\n" 在字符串中匹配的是一个直接量换...

    jquery插件使用方法大全

    并且可以在不同的js文件中做相同的操作,即$(document).ready (fn)可以在一个页面中重复出现,而不会冲突。基本上Jquery的很多plugin都是利用这个特性,正因为这个特性,多个plugin共同使用起来,在初始化时不会发生...

    PHP FCKeditor_2.6.6 瘦身精简版 带重命名上传+实例使用说明

    BasePath为默认Fckeditor的目录,也可以在调用的时候指定. 三、\fckconfig.js 语言识别设置: FCKConfig.AutoDetectLanguage = false ; //61行 关闭自动语言识别 FCKConfig.DefaultLanguage = 'zh-cn' ; //62行 ...

    JScript 语言参考

    hasOwnProperty 方法 返回一个 Boolean 值,标记对象是否带有指定名称的属性。 恒等运算符 (===) 比较两个表达式,看是否值相等并具有相同的数据类型。 if...else 语句 根据表达式的值,有条件地执行一组语句。 ...

    jquery电子文档chm

    complete (Function) : 请求完成后回调函数 (请求成功或失败时均调用)。参数: XMLHttpRequest 对象,成功信息字符串。 Ajax 事件。 contentType (String) : (默认: "application/x-www-form-urlencoded") 发送信息...

Global site tag (gtag.js) - Google Analytics