草庐IT

全局剪枝

全部标签

javascript - 如何创建一个可以在我的 JS 文件之外访问的全局 javascript 对象?

我在JS文件中有以下对象:varIOBreadcrumb=functionIOBreadcrumb(){this.breadcrumbs=[];this.add=function(title,url){varcrumb={title:title,url:url};this.breadcrumbs.push(crumb);};};在另一个JS文件中我想使用这个对象://thisoccursinsomeonclickeventvarbreadcrumb=newIOBreadcrumb();breadcrumb.add('sometitle',url);console.log(breadcr

javascript - 全局搜索时 JavaScript 中的 RegExp 错误

这个问题在这里已经有了答案:WhydoesaRegExpwithglobalflaggivewrongresults?(7个答案)关闭5年前。PossibleDuplicate:Javascriptregexreturningtrue..thenfalse..thentrue..etc首先,为我糟糕的英语道歉。我正在尝试测试字符串以匹配模式,所以我这样写:varstr='test';varpattern=newRegExp('te','gi');//yes,Iknowthatsimple'i'willbegoodforthis但我有这个意想不到的结果:>>>pattern.test(s

javascript - 在全局范围内定义的具有相同名称的变量

谁能解释一下,为什么下一个js代码会出现两个带有“string1”文本的警告窗口,而不是出现第二个带有“undefined”文本的警告窗口??如果两个变量都在同一范围内描述..vara='string1';alert(a);vara;alert(a);​http://jsfiddle.net/FdRSZ/1/谢谢 最佳答案 变量声明(和函数声明)被提升到它们出现的范围的顶部。分配发生在适当的地方。代码有效解释如下:vara;vara;a='string1';例如,考虑一下如果在if语句主体中声明一个变量会发生什么情况:console

javascript - 在 JavaScript 闭包中更改全局变量

我正在尝试更改闭包中变量的值:varmyVariable;$.ajax({//stuff....success:function(data){myVariable=data;}});这不起作用,因为myVariable对闭包不可见。如何更改此代码,以便myVariable的值发生变化? 最佳答案 与您的看法相反,您的代码有效。但是看到您正在尝试做的事情并从字里行间看出我猜您正在尝试这样做:varmyVariable;$.ajax({//stuff....success:function(data){myVariable=data;}

javascript - Greasemonkey 和全局变量

我不熟悉JavaScript和Greasemonkey,我想编写一个简单的脚本。我知道Greasemonkey使用匿名函数包装您的代码,因此您的变量在离开当前页面后将不存在。但是,我需要一个全局变量。我尝试像这样使用unsafeWindow和window对象:if(window.myVar==undefined){window.myVar="myVar";}如果我刷新页面,条件值始终为真。有没有办法在Greasemonkey中使用全局变量? 最佳答案 你必须使用unsafeWindow以便创建可用于页面的javascript范围的全

javascript - 使 JS 局部函数全局可访问

我在需要直接访问的函数中有一个函数。//#############################################################//#Globalvars//#############################################################varcanvasWidth=585;varcanvasHeight=780;//#############################################################//#Initthecanvas//###################

javascript - 可以在 JavaScript 中使用 "let"关键字来避免全局范围的变量吗?

我在用JavaScript做一个测试,我注意到使用let关键字就像letvariable="Iamavariable";console.log(window.variable);做了notaddavariablepropertytothewindowobject.这是否意味着它在全局范围内不存在?我可以声明变量而不必在函数或IIFE中限定它们的范围吗?我确实搜索过这个,但找不到任何东西。每个人都说要使用像{}()这样的函数,或者只是访问一个包含代码的唯一全局变量,但看到这个让我想知道它是否可以用于避免这些事情的目的。 最佳答案 不能

javascript - 使用全局安装的预设进行 Babelify 转换

我有多个使用es2015特性编写的模块。我不想将es2015转换作为每个模块的依赖项,而是在全局安装它。它失败了错误:找不到相对于目录的预设“es2015”有人试过吗?任何解决方法? 最佳答案 错误:无法找到相对于目录的预设“es2015”以解决您需要安装预设npminstallbabel-preset-es2015 关于javascript-使用全局安装的预设进行Babelify转换,我们在StackOverflow上找到一个类似的问题: https://s

javascript - 通过窗口对象引用全局变量时未定义的全局变量

我对通过window全局声明变量还很陌生,所以我有点惊讶以下代码片段的行为因浏览器而异。window.test="Good";document.write(window.test);document.write('');document.write(window.test);document.write('');document.write(test);​Firefox、IE、OperaGoodundefinedGoodChrome和SafariGoodGoodGood我最初认为它应该像Chrome和Safari那样运行,但我意识到我可能没有正确理解window对象,所以有没有更懂行的

javascript - Browserify 从全局范围的 require 加载依赖项,而不是期望它们被捆绑在一起

我正在开发库A和库B,B依赖于A。我想使用browserify将它们独立捆绑起来,所以在我的浏览器中我可以这样做:varA=require("A");varB=require("B");我想将它们独立捆绑起来,因为我还在开发仅依赖于A的库C,如果A包含在B中,那么C将无法访问它,如果A在B和C中,我有重复项。所以我从浏览器化库A开始:browserify-r./src/A.js:A-obuild/A.js它工作得很好,我可以分发A,其他人可以用它开发他们的应用程序。然后我浏览库B:browserify-r./src/B.js:B-obuild/B.js但我现在有两次A,A在浏览器中独立