草庐IT

Iterator模式

全部标签

javascript - 为什么是模块模式?

我已经阅读了很多关于模块模式的文章。好的,它带来了结构、私有(private)方法等……但是使用下面的代码我可以在不使用它的情况下获得相同的行为。functionHuman(){//privatepropertiesvar_name='';var_age=0;//privatemethodsfunctioncreated(){console.log("Human"+_name+"called");};//publicthis.setName=function(name){_name=name;created();};}varh1=newHuman();h1.setName("John"

javascript - JavaScript 中的这三种模块模式实现有什么区别?

我见过以下三个代码块作为JavaScript模块模式的示例。有什么区别,为什么我会选择一种模式而不是另一种模式?模式一functionPerson(firstName,lastName){varfirstName=firstName;varlastName=lastName;this.fullName=function(){returnfirstName+''+lastName;};this.changeFirstName=function(name){firstName=name;};};varjordan=newPerson('Jordan','Parmer');模式二functi

Javascript 沙盒模式示例实现

在StoyanStefanov的伟大著作“JavaScript模式”的第101页,他解释了沙盒模式。我非常喜欢他的书,但我真的错过了这里的一些现实生活中的例子,然后才能更好地理解他在说什么。Likethesandboxpattern!我正在寻找一个现实生活中的工作实现,例如复制和粘贴起点,只是一个简单的示例,可以帮助您完全理解它。有没有? 最佳答案 我已经简化了Stoyan的例子,试图让它更容易理解正在发生的事情。我也更彻底地评论了它。/*Firstdefinethemodulesofthesandbox.Thesewillbede

javascript - 如何从 Angular ui bootstrap 模式传递表单数据以查看

我正在创建一个网络应用程序,我想实现一个添加friend的选项。我已经将添加好友页面创建为带有文本输入字段的模态。我想通过在我的View页面上显示输入来对此进行测试。如何将这些数据显示到我的View页面上?这是我目前拥有的index.htmlI'mamodal!{{user.name}}OKCancelAddFriendUsername:{{user.name}}我的JavaScript文件:angular.module('ui.bootstrap.demo',['ui.bootstrap']);angular.module('ui.bootstrap.demo').controlle

javascript - 严格模式下获取当前函数名

我需要将当前函数名称作为字符串记录到我们的日志工具中。但是arguments.callee.name只能在松散模式下工作。如何获取"usestrict"下的函数名? 最佳答案 为了记录/调试目的,您可以在记录器中创建一个新的Error对象并检查其.stack属性,例如functionlogIt(message){varstack=newError().stack,caller=stack.split('\n')[2].trim();console.log(caller+":"+message);}functiona(b){b()}a

javascript - 我应该担心 "window is not defined"JSLint 严格模式错误吗?

这不会在严格模式下通过JSLint:"usestrict";(function(w){w.alert(w);}(window));来自jslint.com的错误看起来像这样:第4行字符3的问题:未定义“窗口”。}(window));隐式全局:窗口4我需要告诉JSLint忽略错误,还是我真的做错了什么? 最佳答案 尝试添加以下内容:/*jslintbrowser:true*//*globalwindow*/(或选中假设浏览器复选框)。第一行添加一般浏览器支持。第二行将window声明为全局变量。来自文档:Thebrowseroptio

javascript - 如何从给定模式开始删除字符串的结尾?

假设我有这样一个字符串:varstr="/abcd/efgh/ijkl/xxx-1/xxx-2";如何使用Javascript和/或jQuery删除str中以xxx开头,直到str结尾的部分? 最佳答案 str.substring(0,str.indexOf("xxx")); 关于javascript-如何从给定模式开始删除字符串的结尾?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

javascript - jQuery 小部件开发 - 我可以使用 MVC 模式吗?

我一直在使用knockoutjs和backbone创建单页JavaScript应用程序。我使用backbone模型和knockoutView模型,但我也有很多UI控件,我使用jQueryUI小部件工厂创建了这些控件。我的问题是如何更好地构建我的jQuery小部件中的代码。像knockout/backbone/ember这样的框架可以很容易地在主应用程序中实现MVC类型模式,但是当涉及到小部件开发时,我最终会有一大堆输出和操作DOM元素的代码。我仍然可以测试它,因为jquery使查询DOM变得容易,但代码非常难看。理想情况下,我希望在我的小部件中也有一个MVC模式。是否有任何旨在帮助解决

javascript - 区分手持设备和台式机上的纵向模式

我正在寻找一个可靠的媒体查询规则:Ifdesktopwidth(也就是说,随着桌面宽度的减小,媒体查询开始于720px。在手机上,这应该只发生在纵向模式下-横向不应该应用媒体查询)问题是:如何将设备与桌面分开。存在问题是因为:@mediahandheld不受支持另外max-width影响一切,所以它不能与max-device-widthANDportrait一起使用。似乎我只能定位其中一个:所有设备都低于/介于设定宽度之间仅设备(使用JavaScriptshim修复媒体查询)低于/介于设置的宽度和方向之间。不能分开处理设备和桌面。是否有现有的JavaScript解决方案可以满足我的需求

javascript - 流行的 JavaScript 继承模式

我正在研究ebookonGitHub在TDDJavaScript上,我想知道我是否遗漏了任何流行的继承模式。如果您知道任何其他模式,我很乐意看到它们。他们应该具有以下内容:耗时考验-在真实应用中使用应提供源代码。应尽可能直截了当和迂腐。当然要正确且有效。我这样做的原因是,JavaScript中的对象继承似乎对我们许多人来说都很难理解。我的JavaScript继承章节基本上是一个学习辅助工具:Crockford的GoodParts和Zakas的WebDevelopersProfessionalJavaScript。这是我到目前为止的模式://PseudoclassicalInherita