草庐IT

javascript - 将 eval() 与自定义全局变量一起使用

有没有办法在调用eval()时指定要用于global的对象?(我不是在问如何进行全局eval()。)这行不通,但这说明了我想要的:varpseudoGlobal={};eval("x=12",pseudoGlobal);pseudoGlobal.x;//12重点是真正的全局绑定(bind)不受代码eval()中的隐式变量声明(即没有var关键字)的影响。至于eval.call(pseudoGlobal,"x=12")或eval.apply(pseudoGlobal,["x=12"]),一些解释器不会允许它。 最佳答案 当然,您可以用

javascript - 当存在全局标志时,为什么 String.match() 不产生预期结果?

这个问题在这里已经有了答案:JavaScriptregularexpressionsandsub-matches(2个答案)关闭9年前。我正在尝试这场比赛'/links/51f5382e7b7993e335000015'.match(/^\/links\/([0-9a-f]{24})$/g)得到:['/links/51f5382e7b7993e335000015']当我期待的时候:['/links/51f5382e7b7993e335000015','51f5382e7b7993e335000015']在删除全局标志之前,我没有运气,我认为这不会影响我的结果!移除全局标志后,'/lin

javascript - Javascript 中的多个全局变量

这不是一个具体的问题,而是一个更理论化的问题。是否有充分的理由为单个Javascript应用程序公开多个全局变量?我可以看到使用并且经常自己使用单个全局变量来命名包含该应用程序的对象或类,以便可以多次调用它(下面的示例),但我想不出任何情况对象属性无法替换其他全局变量。暴露变量使生活更轻松的示例(使用闭包,它无法被召回):varmyGlobalApp={init:function(args){...},methodOne:function(){...},methodTwo:function(){...},propertyOne:'stringforexample'};myGlobalA

javascript - 在全局/根坐标中确定 SVG 视口(viewport)

在SVG元素中实际可见的内容取决于它的纵横比,它的viewBox值,及其preserveAspectRatio值(value)。例如,具有相同viewBox值(下方红色虚线)的相同SVG元素大小可以根据preserveAspectRatio具有不同视口(viewport)(下方蓝色部分):Chrome有一个viewport属性,但在我的使用中它始终是一个空的(全部为0值)SVGRect。Firefox不实现此属性。svg.getBBox()方法返回viewBox的值,而不是实际可见的视口(viewport)内容。给定对SVG元素的引用,我如何才能最轻松地确定可见内容(视口(viewpo

javascript - Node.js 全局评估,抛出 ReferenceError

我正在尝试从Rhino书中学习JavaScript。我试图执行书中关于eval()的以下代码。我正在使用node.js(v0.10.29)来执行示例。vargeval=eval;//aliasingevaltogevalvarx='global';//twoglobalvariablesvary='global';functionf(){varx='local';//definealocalvariableeval('x+="changed";');//directevalsetsthelocalvariablereturnx;}functiong(){vary='local';//d

javascript - browserify-shim 在 var 范围内时不导出隐式全局变量

根据browserify-shim文档,您可以通过在package.json中使用以下语法来指定browserify-shim需要从遗留模块公开哪些全局变量:{"browserify-shim":{"legacyModule":"myVar"}}我希望可以通过require('legacyModule')和window.myVar访问遗留模块。根据我的经验,如果我尝试填充的非commonjs模块使用window.myVar=x或仅使用myVar=x,则该模块会全局公开并且可按预期通过require()获得。但是,当遗留模块使用varmyVar=x时,这就是导致问题的原因,因为该模块只能

javascript - window.onload 没有全局变量

我正在尝试使用没有全局变量的windows.load。HTML代码:TestName:JavaScript全局变量代码:/*jslintbrowser:true*/varmyButton;window.onload=function(){"usestrict";myButton=document.getElementById("b1");myButton.addEventListener("click",alertMM);};functionalertMM(){"usestrict";window.console.log(myButton.value);}最后是没有全局变量代码的NOT

javascript - Firefox 扩展如何最好地避免污染全局命名空间?

在为Firefox开发扩展时,我一直在研究全局命名空间污染,我想在我的扩展中尽可能避免它。有几种解决方案,但一般来说,这些解决方案似乎只为您的扩展声明一个全局变量,并将所有内容放入其中。因此,您只需向全局命名空间添加一个额外的变量,这还算不错。顺便说一句,有人向我提出了一个解决方案,可以避免将任何额外变量放入全局命名空间;将所有内容包装在一个函数中。这里的问题是在您的XUL覆盖层中没有任何东西可以引用。您必须在叠加层中声明元素,然后在JS中添加大量的addEventListener来替换像oncommand="..."这样的东西在XUL中。我不想这样做;我绝对希望我的XUL在XUL本身

javascript - 如何检索阴影全局变量的值?

例子:vartest='globalvalue';(function(){vartest='localvalue';//howtogetthe'globalvalue'string})();鉴于主机环境未知的情况,这意味着我们不能假设可以通过window名称访问全局对象。此外,该函数不允许接收任何参数! 最佳答案 修复vartest='globalvalue';(function(){vartest2='localvalue';console.log(test);})();真正的解决方案是修复你的代码,这样你就不会隐藏你关心的全局变

javascript - 如何与 ng-switch 中的全局变量进行比较

我正在使用AngularJS$rootScope对象来公开一些需要Controller和View都可以访问的全局常量:varapp=angular.module('myApp',[]);app.run(function($rootScope){$rootScope.myConstant=2;});当我尝试在View中呈现全局值时,它可以正常工作:{{myConstant}}同样,如果我在ng-if条件中引用全局值,它也有效:Conditionalcontent.但是,当尝试在ng-switchblock中使用相同的值进行比较时,它永远不会计算为真。ThisJSFiddle展示了我试图让