草庐IT

protected_by_mutex_var

全部标签

JavaScript 本地作用域 : var vs. this

我似乎无法理解JavaScript变量作用域的特定情况。与我发现的其他示例和问题不同,我对嵌套函数的范围界定很感兴趣。我在thisJSFiddle设置了一个示例.相关部分如下:functionMyObject(){varself=this;vara=1;this.b=2;varinnerMethod=function(){//1and2:directreferencelogMessage("a="+a);//a=1//logMessage("b="+b);//Error:bisnotdefined//3and4:usingthislogMessage("this.a="+this.a)

javascript - try/catch 表达式中的 var 关键字 : JSLint bug or global assignment?

我注意到JSLint的一个有趣结果在研究codereview题。JSLint提示变量在定义之前被使用。这是生成相同结果的代码的缩短版本:(function(){try{vara=0;throw{name:"fakeError"};}catch(e){a=1;}}());我对JavaScript的理解是上面的代码应该等同于:(function(){vara;try{a=0;throw{name:"fakeError"};}catch(e){a=1;}}());事实上,当通过Firebug运行时,这两个示例都不会导致a存在于全局范围内。我看了一下ECMA-262spec的第12.14节,但

javascript - 在嵌套函数中使用 var 声明一个与 parent 参数同名的变量

我正在使用JavaScript编写一些代码并发现了意外行为。我在f中使用嵌套函数g。f有一个名为m的参数。在g中使用和声明同名变量时,会发生一些奇怪的事情:varf=function(m){varg=function(){alert(m);varm=0;};g();};f(1);此代码将导致undefined,而不是我预期的1。将alert语句移动到var行下方会得到有意义的答案0。我想这是因为JavaScript仅将函数用作名称闭包,varm将通过声明附加到函数g,但是m在alert时尚未分配。但我不确定这一点,因为如果函数没有嵌套,我觉得它的行为很好:varg=function(m

javascript - WebKit JS 绑定(bind) : step by step how to

我不得不承认我是WebKit的新手,所以提出正确的问题并不是那么容易。我拥有的是来自WebKit.org的WebKit.它更新、构建,我可以调试-我让它在Windows上运行。我感兴趣的是如何为我拥有的一些IDL文件生成stub文件。我理解高级图片:使用IDL语言编写接口(interface)生成stub文件(.h和.cpp文件)。将您的代码添加到之前生成的stub文件中。我已经在“WebCore.gypi”中指定了我的IDL文件。然后我在“WebCore.gyp”中指定了我的IDL文件的路径。显然这还不够,因为构建WebKit不会为我的IDL文件生成stub文件。我一度怀疑我的IDL

javascript - ES6 值声明后如何判断它是否为 var/const/let?

这个问题在这里已经有了答案:HowtocheckthatES6"variable"isconstant?(4个答案)关闭3年前。我知道我可以通过查看它的声明位置来确定一个值是varconst还是let。但是我想知道-主要是为了调试、开发JS编译器和学术兴趣-是否有可能在创建变量(var/const/let-ness)后找出它的不变性/范围。即doThing(something)会回来let或等价物。就像我们可以使用typeof或something.constructor.name为构造函数确定类型。

javascript - 如何让 js-mode 正确缩进继续(复合?)var 声明?

如果我使用不同的var语句,例如functionstretchDiv(){varwh=$(window).height();varsz2=wh-((paddingTop+paddingBottom)+(mainTop+2)*2);//thescrollbarhappensonlywhentheheightoftheeltisconstrainedvarsz3=sz2-outTop-2;$('#out').css({'height':sz3+'px'});}然后JSLint提示,告诉我将第二个和第三个与前一个结合起来。如果我遵循这个建议,JSLint会很高兴,但是Emacs的内置js-m

JavaScript 变量 : var a =(3, 4,7);

这个问题在这里已经有了答案:WhatdoesthecommaoperatordoinJavaScript?(5个答案)关闭4年前。vara=(3,4,7);console.log(a);//Outputis7您能否解释一下我们如何获得输出7?

javascript - 如何使用带有复选框的 knockoutjs protected observable?

我将knockoutjs与protectedobservable一起使用,但我遇到了复选框问题。可以找到protected可观察对象的一种实现here但我看到有几个非常相似。可以找到演示我的问题的jsFiddlehere.这是fiddle的一部分。varViewModel=function(){varself=this;self.protectedBool=ko.protectedObservable(true);self.commit=function(){ko.commitProtectedObservables(self);};self.rollback=function(){k

javascript - 是否有任何等效于 javascript 的 dbug(*真正*漂亮的 vars 打印)?

我知道firebug中的console.log,这个东西叫做dbug(但根本不是我想要的)。我正在寻找的东西可以给我一个pretty-print嵌套View到一个对象,对于javascript看起来像这样:(来源:ospinto.com)I'malsoawareofthisquestion,并且正在寻找更表格化的内容。 最佳答案 一次尝试:查看演示:http://jsbin.com/oxeki代码:varprettyPrint=(function(){varhtmlObj=function(obj){if(Object.protot

go - 如何避免 VSCode 在 Golang 中删除未使用的 var 或导入

这个问题在这里已经有了答案:Howtoavoidannoyingerror"declaredandnotused"(8个答案)HowtodisableGolangunusedimporterror(8个答案)关闭3年前。我正在使用最新的VSCode、golang插件和最新的golang版本学习golang。Goland不会让你有未使用的东西-例如变量和导入。VSCode有办法绕过它吗?谢谢你:)