jjzjj

design-patterns

全部标签

javascript - 在 JavaScript 中选择 OOP 模式

在其他人的帮助下和一些资源中,我将这些放在一起。我做了一个fiddleofeverything,精简代码发布在下方。基本上我已经学会了如何使用这些模式中的每一个,但我很好奇这些方法之间更根本的区别。下游代码实际上与这些模式中的任何一个相同,但是除了个人偏好之外,是否有理由应该使用一个而不是另一个?此外,尽管我已尝试收集最常见的模式,但如果更好,请提出您自己的模式。模式1(基于对象):varmouseDiff={"startPoint":{"x":0,"y":0},"hypotenuse":function(a,b){//dosomething},"init":function(){//

javascript - 检查 JavaScript 对象是否已更改的设计模式

我从服务器获取一个对象列表[{name:'test01',age:10},{name:'test02',age:20},{name:'test03',age:30}]我将它们加载到html控件中供用户编辑。然后有一个按钮可以将整个列表批量保存回数据库。我不想发送整个列表,而是只想发送已更改的对象子集。它可以是数组中任意数量的项目。我想做一些类似于Angular这样的框架,在没有对它进行任何更改时将对象属性标记为“原始”。然后使用该标志仅向服务器发布不是“原始”的项目,即已修改的项目。 最佳答案 下面是一个函数,当提供旧的对象数组/对

javascript - JavaScript 中的设计模式有用吗?它们到底是什么?

我一直在学习越来越多的javascript;这是我工作的必需品。我们有一个使用大量javascript的Web应用程序,我每天都会做越来越多的事情。我已经阅读了关于设计模式的点点滴滴,但想知道是否有人可以给我一个简明扼要的例子和定义。它们对我有好处吗?还是级别更高? 最佳答案 设计模式是通用的,通常是对众所周知的编程问题的优雅解决方案。在不知道您正在处理什么问题的情况下,我会说"is",它们可以帮助您的代码更易于管理。Thislink和thislink引用Javascript中的设计模式。它们可能值得回顾。

javascript - ng-pattern 给出 "Lexer Error"?

作为输入元素的一个属性,我有:ng-pattern="^\d{5}(?:[-\s]\d{4})?$"这个表达式有什么问题?我收到这个错误:LexerError:Unexpectednextcharacteratcolumns0-0[^]inexpression[^\d{5}(?:[-\s]\d{4})?$]. 最佳答案 尝试在^之前和$符号之后添加/。例如ng-pattern="/^\d{5}(?:[-\s]\d{4})?$/"希望对您有所帮助! 关于javascript-ng-patt

JavaScript 最佳实践 : How to implement long-lived apps (one-page web apps)?

是否有任何最佳实践来实现长生命周期的JavaScript应用程序,即由单个页面组成并通过AJAX将其他页面加载到内容区域的网络应用程序?(Gmail就是一个很好的例子。)我已经阅读了有关优缺点、SEO、性能等的信息(http://stackoverflow.com/questions/1499129/one-page-only-javascript-applications),我对如何实现的模式很感兴趣这个。我想避免使用大型框架(例如Cappuccino、Echo2、SproutCore、Claypool)。如何在维护URL的#link部分(用于书签)的同时管理动态加载内容?不要误会我

javascript - Gmail 的 JavaScript 中使用的设计模式?

谁能告诉我在构建Gmail时使用了哪些设计模式(如果有的话)?我理解它背后的概念-排队一些请求,在每个请求完成时增加栏,在所有请求都关闭时初始化显示-但我特别感兴趣是否有特定的设计模式可以用来模仿这些功能。 最佳答案 我有一个类似的问题并解决了它:数据预加载通过向服务器发送异步请求来工作。当进度条可见时,我会为每个请求增加一个计数器。进度条的大小==计数器。由于请求发送很快,用户永远不会注意到进度条的最大值发生变化。当请求回答到来时,我每次都会让进度条前进一次。仅此而已。当最后一个请求到达时,预加载完成。当回复很少并且快速连续到达时

javascript - JS Revealing prototype 模式中如何实现继承?

如何继承/扩展使用揭示原型(prototype)模式的类​​?有没有办法使private变量和函数protected?示例基础对象:myNameSpace.Person=function(){this.name="";this.id=0;};myNameSpace.Person.prototype=function(){varfoo=function(){//sampleprivatefunction};varloadFromJSON=function(p_jsonObject){...};vartoJSON=function(){...};varclone=function(p_ot

javascript - Redux 和 Angular 2

是否批准将Redux与Angular2一起用于状态管理,或者Angular2是否提供了一些内部机制来以一致的方式管理应用程序状态? 最佳答案 “内部”它不是捆绑的功能或模块。但是@NGRX的人在支持angular2中的这种模式方面做得非常出色。查看以下资源了解更多详情:https://github.com/ngrx/storehttps://blog.sstorie.com/building-an-angular-2-reactive-auto-logout-timer-with-the-redux-pattern/

javascript - 这种模式在 Javascript 中叫什么?它有名字吗?

组件.jsvarcomponent=(function(){varself;vardefault_options={array_option:[],string_option:"default"};return{other_function:function(args){},init:function(options){self=this;//mergeinuseroptionsfor(varattrinoptions){if(options.hasOwnProperty(attr)){self.o[attr]=options[attr];}}/****Initializecompon

javascript - jQuery 如何返回一个数组并且仍然是一个 jQuery 对象?

我正在尝试重现jQuery(1.7.1)的对象结构,以更好地理解它的工作原理。我有以下代码:(function(window,undefined){vardocument=window.document,navigator=window.navigator,location=window.location;window.myclass=(function(){var__con=function(){returnnew__con.fn.init();}__con.fn=__con.prototype={'init':function(){returnthis;},'test':funct