是否可以获取在javascript中调用匿名函数的属性的名称? 例var obj = {WhoAmI: function() {//Obtain the name WhoAmI} }解决方法:该函数不(直接)知道引用它的属性或变量的名称. 虽然取决于调用方式,但可以发现它.var obj = {WhoAmI: function func() {for (var p in this)if (this[p] === func)alert(p);} }obj.WhoAmI();演示:http://jsfiddle.net/wUdNf/ 仅当调用此函数的this集合作为引用该函数的对象时,此方法才有效. 您可以使...
我发现人们使用这种方法来获取当前脚本位置的路径:_getScriptLocation: (function() {var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)"),s = document.getElementsByTagName('script'),src, m, l = "";for(var i=0, len=s.length; i<len; i++) {src = s[i].getAttribute('src');if(src) {m = src.match(r);if(m) {l = m[1];break;}}}return (function() { return l; });})(),Full codes here. 但是我不知道为什么要...
更新2:我真正想问的问题已经在另一页中提出.请检查以下条目. (感谢BobS.)How can I access local scope dynamically in javascript? 你好. 我已经开始使用jQuery,并且想知道如何从String动态调用匿名函数中的函数.举例来说,我具有以下功能:function foo() {// Being in the global namespace, // this function can be called with window['foo']()alert("foo"); }jQuery(document).ready(function(){function bar() {// How can...
是否可以在下面测试myInnerFunction?var val = function() {var myInnerfunction = function(input) {return input + ' I ADDED THIS';};return myInnerfunction('test value'); }();由于myInnerFunction本质上是匿名执行的外部函数的私有成员,因此似乎无法从外部进行测试.解决方法:您可以故意将测试钩暴露给外界,就像这样:var val = function() {var myInnerfunction = function(input) {return input + ' I ADDED THIS';};/* S...
javascript中的匿名函数 直接po图和代码运行结果如下//没有名字的函数就叫做匿名函数 var fun1 = function(){console.log('哈哈哈,我是匿名函数'); }; // fun1(); //正确(可以正确执行函数) (fun1()); //正确(可以正确执行函数)var f = fun1; f(); //正确(可以正确执行函数)// var fun2 = function(){console.log('大家好我是匿名函数'); }();
匿名函数:没有名字的函数;并没有牵扯到应用其他函数的变量问题。仅仅是没有名字。定义方式:1,var A = function(){ };2, (function (x,y){ })(2,3);3, function() { };闭包:A函数中嵌套着B函数,B程序中有用到A的变量,当外部函数C调用函数A时,虽然A已经执行完毕,理论上函数执行完毕,它就要被弹出栈,但是由于B要用到A,所以A的变量被保存到内存中不被销毁,我们称函数B是闭包。代码实例:在《js高级程序设计中》,有段代码...
当我在JavaScript中创建一个匿名函数时,如下所示:(function(){ /* some code here */ })()添加此功能的对象将在哪个对象中生效? 您还可以在jQuery源代码中看到一个匿名函数,如下所示:(function(window, undefined){/* some code here */})(window)该函数的参数如何区分它与匿名的0-arg函数?解决方法:JavaScript中的函数是值.也就是说,函数由对象表示,并且与任何其他对象一样,它可以是变量的值或参与表达式. 从而(function() { ...
<!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" xml:lang="en" lang="en"><head><meta content="text/html;charset=utf-8" http-equiv="Content-Type"><meta content="utf-8" http-equiv="encoding"><link rel="stylesheet" href="https://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css"...
javaScript中的匿名函数和闭包(第2篇)<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>javaScript中的匿名函数和闭包(第2篇)</title> <script type="text/javascript">/*作用域链的机制导致一个问题,在循环里的匿名函数取得的任何变量都是最后一个值*///循环里的匿名函数的取值问题function f1(){var arr = [];//循环里包含匿名函数for (var index = 0; index < 5; index++) {arr[index] = function (){ //arr[0]=0...
我需要在Javascript中存储一个作为我的“命名”函数的参数传递的匿名函数,然后再调用它. 我怎样才能做到这一点?我已经知道如何将匿名函数作为参数传递,但是当我在代码的“另一端”时,我不知道如何处理它. 谢谢解决方法:Functions in JavaScript是first-class members,这意味着您可以像使用该语言中的任何其他数据类型一样使用它们 – 您可以将它们作为参数传递,将它们作为成员变量保存在其他函数中,从函数返回它们等. 在您询问的情...
嗨,所以我创建了这个代码很好.document.getElementById("file").addEventListener('click', function () {var textArea = document.getElementById("newTextArea");//Retrieve the selected text : var selText = window.getSelection(); var text = textArea.innerHTML; // I need to make a condition here. If the text doesn't have a span tag then do this: if (document.querySelector('.test') === null) {textArea.inne...
我知道这段代码不起作用,我也知道原因.但是,我不知道如何解决它: JavaScript的:var $= function(id) { return document.getElementById(id); }; document.addEventListener('DOMContentLoaded', function() {for(var i = 1; i <= 3; i++){$('a' + i).addEventListener('click', function(){console.log(i);});} });HTML:<a href="#" id="a1">1</a> <a href="#" id="a2">2</a> <a href="#" id="a3">3</a>我希望它打印您点击的链接...
这是一个非常基本的问题,但…… 我有一些像这样的代码var arr = Array('blah.jpg','ha.jpg'); for (var i=0; i<array.length; i++) {$('div#blah' + i).click(function() {$('img').attr('src', arr[i]); }); }这应该使用id =“blah0”绑定div,以便在单击时将所有图像更改为“blah.jpg”.同样,单击id =“blah1”的div应将所有图像更改为“ha.jpg”. 但是,匿名函数将无法工作,因为它将在执行时使用’i’的值,即2.这意味着单击div将尝...
我有两个自调用函数,但我收到一个错误Uncaught TypeError: undefined is not a function码:(function(){ //a.min.jsconsole.log('main') })()(function(){ //b.min.jsconsole.log('two') })()谢谢大家的解决方案,但我想知道如果通过一些自动化工具如gulp完成连接和缩小,如何解决这个问题解决方法:你忘记了分号(function(){console.log('main') })();(function(){console.log('two') })();这使得第一个IIFE解释为未关闭,第二个代码...
唯一给我带来问题的是执行匿名函数调用.我甚至打了个电话,看看里面的代码是否有问题;事实并非如此. 这是我写的格式:(function(){})(); 我很肯定这是正确和标准的使用,但它不断抛出这个错误:Uncaught TypeError: (intermediate value)(intermediate value)(…) isnot a function(anonymous function)站点运行时可以找到错误HERE. 上面的代码摘录与我的程序中的代码没有什么不同解决方法:给你麻烦的代码是ctrl.deleteObject = func...