草庐IT

c++ - 模糊指针声明

全部标签

javascript - 在闭包内声明的类与没有闭包的标准类

通常我使用基于原型(prototype)的标准OOP方法,我的类看起来像这样varstd=function(){this.log=function(msg){console.log("wanttobeprivate."+msg)};};std.prototype={logInfo:function(msg){this.log(msg);}};但在那种情况下,log是公共(public)方法,任何人都可以使用它。但我想将其设为私有(private),但在原型(prototype)中声明的方法中仍然可用。为此,我们需要闭包。代码会改成这样varclosureStd=(function(){

javascript - 将 JSON 指针映射到文本 JSON 文件中的 {line, column}

我需要将JSON(或JavaScript对象)中由JSON指针定义的位置映射到JSON文本文件中的位置,如{line,column}。是否有任何现有的JavaScript库可以做到这一点?编写这段代码会有点乏味......例如,如果我有一个JSON文件(文本):{"foo":[{"bar":1}]}然后给定JSON指针/foo/0/bar我需要得到{line:4,column:7}作为结果。如果此JSON文件中存储了等效的JSON值:{"foo":[{"bar":1}]}那么相同JSON指针的结果应该是{line:1,column:10}。 最佳答案

javascript - Javascript 中的前向声明

背景我正在构建一个基于javascript的应用程序,它在移动设备和桌面设备上的工作方式不同。然而,除了DOM操作之外,大多数代码在两个平台之间是通用的,所以我将所有文件结构化为:*foo.core.js*foo.mobile.js*foo.web.js并希望利用面向对象的技术来编写更简洁的代码。问题:我有两个带有类的JavaScript文件文件1:functionClassA(){}ClassA.prototype.foo=function(){};GreatGrandChildA.prototype=newGrandChildA();//thisiswheretheerrorisf

Javascript 最佳实践,为什么要使用逗号来链接函数/变量声明?

我一直在为jQuery“jQueryLog”开发一个插件,以允许调试链选择器和返回值。想查就查吧here这已经是第二个版本了。第一个版本实际上是一个编辑过的jQuery,在做它的时候我不得不阅读jQuery来理解内部是如何工作的。问题来自那里:varjQuery=function(selector,context){//ThejQueryobjectisactuallyjusttheinitconstructor'enhanced'returnnewjQuery.fn.init(selector,context,rootjQuery);},//MapoverjQueryincaseof

javascript - 如何区分未声明的变量和已声明但未赋值的变量?

这两种情况下,变量的类型都是“未定义”。但是未声明的变量会引发异常。有没有简单的方法来处理这个问题? 最佳答案 您可以在Howtocheckifavariableorobjectisundefined?中找到问题(和我的答案)相关的。一般来说,我认为任何对“未声明变量”的访问都是编程错误。但是,这种特殊情况只能通过检测ReferenceError异常来检测。但是,讨厌,讨厌,讨厌!记住变量声明是一个静态词法构造,忽略全局对象的属性变量的怪癖。ReferenceError,现在是“strict”,存在是有原因的,我怀疑这是一个X-Y问

javascript - 'var' 声明的变量和 'this' 在 Javascript 中创建的属性有什么区别?

首先使用varfunctiontestCode(some){varsomething=some;}第二次使用这个functiontestCode2(some){this.something=some;} 最佳答案 在第一个函数中,something是一个private(局部)变量,这意味着它在函数外是完全不可访问的;而在第二个中,它是一个public实例变量。设置变量的上下文将取决于您调用函数的方式:>testCode2("foo");//thiswillrefertodocument.window>something"foo">>

javascript - 函数声明或函数表达式

我刚刚在block作用域中定义函数时遇到了问题。考虑以下程序:try{greet();functiongreet(){alert("MerryChristmas!");}}catch(error){alert(error);}我希望这个程序能提示MerryChristmas!。然而在Firefox中是给我以下ReferenceError:ReferenceError:greetisnotdefined在Opera和Chrome上,它会像我预期的那样提醒问候语。显然,Firefox将block范围内的函数视为FunctionExpression,而Opera和Chrome将其视为Func

javascript - 为什么javascript在delete时区分有无声明的赋值?

这个问题在这里已经有了答案:Effectofdeclaredandundeclaredvariables(4个答案)关闭9年前。在全局上下文中执行下面的代码:varx=1;y=1deletex//falsedeletey//truex和y都是全局对象的属性。为什么javascript必须在某种程度上区分它们?根据ES5标准很容易遵循套路thedeleteoperator和theobjectinternalmethod[[delete]].表达的更明确的问题是,为什么它们采用不同的[[configurable]]属性?

javascript - 使用函数表达式而不是函数声明的优点?

如图所示here,函数声明和函数表达式之间存在一些差异。函数表达式与函数声明相比有一个缺点,如果在函数声明之前调用它会报错。我只想知道使用函数表达式的优点,因为我似乎只看到了上面提到的缺点。我可能有一个例子......函数表达式:alert(foo());//ERROR!foowasn'tloadedyetvarfoo=function(){return5;}函数声明:alert(foo());//Alerts5.Declarationsareloadedbeforeanycodecanrun.functionfoo(){return5;} 最佳答案

javascript - 除了在 light DOM 中声明插槽名称之外,还有其他选择吗?

在shadowDOMv0中,开发人员不需要了解如何将lightDOM内容放置在组件的shadowdom中的内部实现。v0规范与内置组件的当前行为相匹配,如和消费者不太关心他们的元素内容具体放置在哪里。相反,影子DOM会自动选取与select中指定的选择器匹配的元素。上的属性标记并将它们放置在影子树内的正确位置。这需要更少的开发人员代码样板。在v1中,您需要具体了解插槽名称。模仿前面用提到的相同示例,我需要使用类似的东西whereslot属性值指定放置当前元素的位置。我也可以添加不打算包含在该插槽中的元素,例如.总而言之,我的担忧是:每次使用webcomponent时都需要指定额外的信息