草庐IT

NAT模式

全部标签

javascript - 如何使用可重用方法和私有(private)属性创建 Javascript 对象创建模式?

考虑到具有私有(private)属性的对象创建模式,一种方法是:functionMyStack(){varlist=[],index=0;this.push=function(val){returnlist[index++]=val;};this.pop=function(){//...}}varstack1=newMyStack();stack1.push(5);varstack2=newMyStack();stack2.push(11);问题在于:Stack的每个实例都有它自己的“push”和“pop”方法副本。另一种实现构造方法的方法是:functionMyStack(){thi

javascript - JavaScript 中的 UI 模式

您通常在JavaScript中使用哪些UI模式?我所说的UI模式是指用于构建和组织UI的最佳实践,由JavaScript生成/管理(jQuery或YUI等库除外)。例如,如果您来自.NET世界,您就会熟悉MVC(模型-View-Controller)模式系列。在WinForms和ASP.NET的世界中,您将遇到模型-View-演示者。在WPF中,您很可能会发现MVVM(模型-View-View模型)方法。那么JavaScript呢? 最佳答案 模式通常与语言无关。如果一个模式有值(value),除了某些边缘情况,无论您使用什么语言或

javascript - 在严格模式下意外使用保留字 'let'

我在Safari中测试以下代码时遇到错误。vartemp_color=null;vartemp=0;vartempv=0;for(letxincolorblock){temp_color=colorblock;tempv=Math.pow((color.r-temp_color.r),2)+Math.pow((color.g-temp_color.g),2)+Math.pow((color.b-temp_color.b),2);if(x===0){temp=tempv;Safari抛出错误“在严格模式下意外使用保留字‘let’”,但当我使用Chrome时它确实有效。

javascript - 对象文字或模块化 Javascript 设计模式

这可能已经被问过很多次了,我已经搜索过SO但到目前为止,我读到的所有答案都不是我正在寻找的。我在一个网站上工作,该网站具有适度的DOM元素显示/隐藏、一些AJAX调用,可能还有其他内容。所以我将有两个主要脚本文件(HTML5样板标准)plugins.js//thirdpartypluginsheresite.js//allmysitespecificcodehere之前我使用的是对象字面量设计模式,所以我的site.js是这样的:varsite={version:'0.1',init:function(){site.registerEvents();},registerEvents:f

javascript - 是否可以动态访问模块模式中的私有(private)变量?

有没有办法让模块模式中的公共(public)函数动态访问私有(private)变量?test1显示了我所说的“动态访问”但使用公共(public)变量的意思varx=(function(){varx=0,y=2,z=5;return{toast:123,test1:function(arg){returnthis[arg];},test2:function(){//??}};}());console.log(x.test1("toast"));//123console.log(x.test2("y"));//shouldreturn2我最终创建了一个私有(private)变量(一个对象

javascript - RxJS5 中 shareReplay(1) 的模式

我已经开始使用RxJS5,现在发现不再有shareReplay方法。很有可能我经常在RxJS4中误用shareReplay,但现在我正在努力获得我想要的行为,即:创建一个可观察对象订阅observable,observable产生一个值第二次订阅observable,我得到相同的第一个值Observable产生第二个值,两个订阅都得到第二个值我如何使用RxJS5实现它?总的来说,我认为我对RxJS的运算符理解得很好,但是整个冷、热、发布、连接对我来说都不太清楚。是否有一个很好的引用来说明如何找到我拥有的observable类型,以便我可以以合乎逻辑的方式找出为什么订阅没有获取值,或者为

javascript - redux fetch body 不使用 no cors 模式

我有一个调用函数的操作:dispatch(Api({url:"my_url",method:"POST",data:data}))这里我将数组作为数据传递..importfetchfrom'isomorphic-fetch'exportdefaultfunctionApi({url,method,headers,data}={}){returndispatch=>{console.log(data)console.log(url)console.log(method)console.log(JSON.stringify(data))letresponse=fetch(url,{mode

javascript - 'require(...)' 是常见的 javascript 模式还是库函数?

我通常发现这是node.js脚本/模块以及phantomJS、casperJS等的第一行。我很好奇,这是否是服务器端javascript(SSJS)的常见模式(类似于#include在C/C++中或import在Java中)或者它是一个像RequireJS或LabJS这样的库被调用用于这个包含(我都没有机会使用它们在实践中,到目前为止)?例如varhttp=require('http')或varcasper=require('casper').create()我很好奇这种模式是否已成为SSJS的标准化,或者是否每个库/工具都调用现有函数?请原谅问题的n00b维度,但我想知道它无所不在背

javascript - GetUserMedia - 面向模式

我目前正在使用Android平板电脑和GetUserMedia在我的程序中拍照。显然,GetUserMedia使用的默认摄像头是前置摄像头。如何将后置摄像头用作默认设置?这是我的GetUserMedia代码:navigator.getUserMedia({"audio":false,"video":{mandatory:{minWidth:this.params.dest_width,minHeight:this.params.dest_height,//facingMode:"environment",},}},function(stream){//gotaccess,attachs

javascript - 在 gist Ace 编辑器中启用 Vim 模式

我正尝试在githubgists上为我心爱的Vim启用Ace的键盘处理程序。这似乎是一件容易的事,但我正在努力:找到gistace编辑器依附的对象(ace默认editor未定义)通过github的托管Vim绑定(bind)将其设置为使用VIM:https://gist.github.com/assets/ace/keybinding/vim-b9f3b98dd13151f9b4c7279d8259b69e.js我在AceGoogleGroup上找到了以下片段:env.editor.setKeyboardHandler(require("ace/keyboard/keybinding/v