草庐IT

Javascript:私有(private)函数的嵌套——好还是坏?

我经常使用这种结构:varexample=(function(){functionprivateFn2(){...}functionprivateFn1(){...}return{publicMethod1:function(){...},publicMethod2:function(){...}};}());我想知道的是:如果privateFn1是唯一调用privateFn2的函数/方法,按如下方式设置它是否被认为是更好的做法?为清晰起见已编辑varexample=(function(){functionprivateFn1(){functionprivateFn2(){}...pr

javascript - Javascript 中的闭包是获取对完整外部函数的引用,还是只获取对它们实际使用的变量的引用?

出于好奇,JavaScript中的闭包是获取对整个“外部环境”的引用,还是分析返回的函数以查看它引用了外部作用域中的哪些变量,然后仅获取对这些变量的引用? 最佳答案 理论上,JavaScript中的嵌套函数可以访问所有包含作用域中的所有变量。当遇到标识符时,它根据范围链进行解析,这是一个列表,其中包括属性为变量的对象和每个包含执行上下文(即封闭函数)的函数参数,最里面在前,加上最后的全局对象。无论走到哪里,函数对象都会拖着它的作用域链。然而,这些Variable对象和范围链只是规范构造,不能直接访问,因此实现可以自由地进行他们喜欢的

javascript - AJAX 应该使用 hashtag/#!/还是不使用?

我制作了一个URL形式为http://www.example.com/module/content的网页这是一个非常动态的网页,实际上它是一个网络应用程序。为了使其响应尽可能快,我想使用AJAX而不是普通的页面请求。这也使我能够使用JavaScript添加一个层来提供离线功能。我的问题只是:我应该如何制作网址?他们应该是http://www.example.com/module/content吗?或http://www.example.com/#!/module/content?以下只是我的两个方向的想法。如果您对此已经有了清晰的想法,则无需阅读。我想使用第一个版本,因为我想支持新的H

javascript - 我应该为 Angular 使用 Material 还是为 AngularJS 使用 Material?

Angular'sGitHub页面显示了两个与MaterialDesign相关的固定存储库:angular/material2angular/materialREADME.md对于angular/material标题为AngularJS应用的Material设计。README.md对于angular/material2标题为Angular的Material设计。我正在使用angular-cli构建Angular2网络应用程序并且安装和导入@angular/material到app.module.ts。import{BrowserModule}from'@angular/platform

javascript - 元素是在 DOM 中另一个元素之前还是之后

有没有办法检测一个元素是出现在标记中另一个元素之前还是之后?这不管在DOM中的位置。它可以是child、sibling、parent或parent的parent。这是一个一般性问题,因此没有要分享的标记。澄清一下——这是关于元素在标记中的位置,而不是它的显示位置。现在想想我的问题有点奇怪,因为如果你有元素X和元素Y,那么你就会有这些场景。//inregardstoy//:after//:before//notreallybeforeorafterisit? 最佳答案 是的,有点。DOM3介绍Node.compareDocumentP

javascript - 我应该在 service worker 中使用 self 还是 this ?

我在其他文档中看到了this作为共享worker上下文的用法,还有self。我应该使用哪一个? 最佳答案 self保证指向ServiceWorkerGlobalScope您可以在其中找到诸如clients,registrationorcachesandavarietyofeventhandlers之类的属性.另一方面,this遵循与JavaScript环境的其余部分相同的动态绑定(bind)规则。记住这一点并不重要,但我的建议是当你想专门引用全局上下文时使用self。 关于javascr

javascript - 异步还是同步?当我们设置 Image 对象的 src 属性时?

varimg=newImage();img.src='xxxxx';浏览器是否会等待图像加载然后执行下一行代码? 最佳答案 那个Action是异步的;许多图像“预加载”代码都依赖于该功能。编辑:也提供更多有用的信息。如果你想让某些Action同步等待图像通过javascript的图像对象加载,你可以使用onload事件,如下所示:varimg=newImage();img.onload=function(){/*onLoadcodehere*/};img.src='xxxxxx'; 关于

javascript - 单行 'var' 声明,还是每行一个?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我在看道格拉斯克罗克福德的CodeConventionsforJavaScript文档,他说var应该按字母顺序排列,并且每行一个。vara;//arrayofclassnamesvarc=node.className;//thenode'sclassnamevari;//loopcounter然而,jsLint(和jsHint)标准是在一行中声明它们,

javascript - 我应该用 Javascript 还是作为 AJAX 调用进行货币计算?

我正在使用JQuery、Stripes、Spring和JPA(Hibernate)构建一个网络应用。我有一个允许用户输入多个订单行项目的页面,每次在价格字段中出现onblur时,我都会将一个JQuery事件绑定(bind)到该字段,该事件对所有价格字段求和(这是一个小计),计算10%的税并将税添加到小计中。我更新页面以显示小计、税金和总计。我的问题是,我应该用Javascript进行计算吗?如果是这样,我如何确定舍入等是否正常工作?我有点担心精度问题。用Java进行Ajax调用来进行计算对我来说会更好吗?任何建议都会很棒! 最佳答案

javascript - 检查用户输入的日期是当前日期还是 future 日期

我在网上浏览是为了找到一个javascript函数它可以检查用户输入的日期是当前日期还是future日期,但我没有找到合适的答案所以我自己做了。想知道这是否可以通过一行代码实现。functionisfutureDate(value){varnow=newDate;vartarget=newDate(value);if(target.getFullYear()>now.getFullYear()){returntrue;}elseif(target.getFullYear()==now.getFullYear()){if(target.getMonth()>now.getMonth())