使用window[variablename]()调用函数;在文档中.准备

call a function using window[variablename](); in document.ready

本文关键字:函数 文档 准备 调用 window variablename 使用      更新时间:2023-09-26

我在文档.ready中有一些函数,我想使用变量中的值来调用它们。。我尝试使用window[variablename]();,但它在文档内不起作用。ready,但当直接调用它时,它起作用。。

认为这是文档中的函数。准备

$(document).ready(function() {
    function jhon(){
         alert('works');
    };
});

我从一个变量中得到函数名,该变量的值就是函数名。。

下面的代码将获得URL的散列部分示例:#JHON和remove#,并将其存储在URLHASH变量中。。示例:JHON

  var urlhash = document.location.hash;
  urlhash = urlhash.replace(/^.*#/, '');

当我这样打电话时,它不起作用。。

  window.onload=function() {
      window[urlhash]();
  };

但是当我这样调用函数时,它运行良好。。

  window.onload=function() {
      jhon();
  };

是否可以使用变量值调用函数?

这:

window.onload=function() {
    window[urlhashed]();
};

包含拼写错误:urlhashed应该是urlhash

window.onload=function() {
    window[urlhash]();
};

除此之外,您还在另一个函数中定义了jhon(),该函数将它捕获在该封闭函数范围中。

如果你想让这项工作按预期进行,你应该改变这个:

$(document).ready(function() {
    function jhon(){
         alert('works');
    };
});

更像这样:

$(document).ready(function() {
    window.jhon = function(){
         alert('works');
    };
});

$(document).ready的外部定义函数jhon。否则,它将被隐藏,因此无法通过window[function_name]:访问

function jhon(){
     alert('works');
};
$(document).ready(function() {
  var urlhash = document.location.hash;
  urlhash = urlhash.replace(/^.*#/, '');
  window[urlhash]();
});