草庐IT

代码实例演示

全部标签

javascript - 无论如何让实例共享相同的功能但同时具有私有(private)变量?

我有这段代码:varHuman=function(name){this._name=name;};Human.prototype.Shout=function(){alert(this._name);};vartom=newHuman("tom");varjohn=newHuman("john");alert(tom.Shout===john.Shout);现在._name不是“私有(private)的”。我想将._name设为“私有(private)”,但同时我不希望为每个Human实例创建附加函数(换句话说,tom.Shout必须===tojohn.Shout),因为为创建附加函数

javascript - 如何避免在 Javascript 闭包中使用此代码段?

我每天在Javascript中使用这个片段100次来关闭封闭对象:Class.prototype.Method=function(arg){varTa=this;vare=function(){Ta.doSomething(arg);};};有没有办法避免Ta变量并仍然引用“外部”(这个词正确吗?)对象? 最佳答案 我不知道我会提倡这个更好,但你可以使用“.bind()”:vare=function(){this.doSomething(arg);}.bind(this);这确保函数“e”中的this值始终是周围上下文的this值。

Javascript原生排序方法代码

知道如何查看nativejavascript方法的实现,特别是排序方法。我之所以要找这个,我只是想知道所使用的算法是什么以及它的复杂性是什么。我正在用javascript对一个巨大的json对象进行排序,我想知道我是否应该为此编写自己的metyhod。不同浏览器的实现是否也不同? 最佳答案 看看WebKit实现:https://gist.github.com/964673.显然,它使用最小排序/选择排序。来自:http://svn.webkit.org/repository/webkit/trunk/Source/JavaScrip

javascript - 如何组织项目中的 JavaScript 代码以实现可维护性?

我主要是一名PHP开发人员,但最近我一直在使用JavaScript,主要是在jQuery中。问题是代码越来越难以调试,而这变得更加困难,因为我在HTML中散布着事件监听器。代码处理AJAX调用和DOM操作。 最佳答案 Separationofconcerns这意味着您拥有三种类型的文件,HTML、CSS和JS。您不要混合任何HTML、CSS或JS。它们中的每一个都在其自己的文件中。只需将所有内容分开并且从不使用内联javascript或内联CSS,您就可以解决大部分代码组织问题。另一种技术是打包器和压缩器。我选择的包装商是brows

javascript - 代码在 jsFiddle 上运行良好但在本地系统上运行不正常

此代码在jsFiddle上运行良好,但在我的系统上运行不正常。JsFiddle我已经检查了草稿(在jsFiddle上按Ctrl+Shift+Enter),将此代码添加到标题部分并修改如下:window.addEvent('load',function(){window.webkitRequestFileSystem(window.TEMPORARY,2*1024*1024,function(fs){fs.root.getFile('test',{create:true},function(fileEntry){alert(fileEntry.toURL());fileEntry.cre

javascript - 在使用调试器单步执行 JS 时,有没有办法跳过 jQuery/Backbone/Underscore 代码?

当使用Chrome调试器单步调试我的JS应用程序中的代码时,我经常发现自己费力地浏览了我不感兴趣的主干/下划线/jQuery代码。有没有办法单步执行我的代码,但让调试器跳过这些库中的代码? 最佳答案 我刚刚花了三天时间在chrome的调试器中做这件事。诀窍是在Backbone/jQuery/Underscore代码和F8之后的下一行设置断点。喜欢for(_(obj).each(function(v,k,l){console.log(k,v,l);});在for行和console行上设置断点。F11到for行,然后F8然后继续你的步进

javascript - 通过从构造函数返回现有实例来实现 javascript 实例存储

我正在尝试在Backbone.js中实现我的“实例存储”版本,正如Soundcloud在他们最近的博客文章中所描述的那样:http://backstage.soundcloud.com/2012/06/building-the-next-soundcloud/相关摘录:为了解决这个问题,我们使用了一个我们称之为实例存储的结构。这个存储是一个对象,每次调用模型的构造函数时都会隐式访问和修改它。首次构建模型时,它会将自己注入(inject)到商店中,使用其id作为唯一键。如果使用相同的id调用相同的模型构造函数,则返回原始实例。vars1=newSound({id:123}),s2=new

javascript - ExtJS:在运行时向 Menu 实例添加新的 MenuItem

我需要在运行时添加一个新创建的MenuItem;所以我的代码目前看起来像:varmyMenu=myCmp.query('mymenu')[0];//retrievemyonlyMenuobjectvarmenuItem=Ext.create('Ext.menu.Item',{itemId:'myItemId',text:'textGoesHere'});myMenu.add(menuItem);我正在使用addmethod添加项目;但是在运行时菜单项没有任何反应。尽管调试显示新项目实际上已添加到items菜单实例的配置。使用removemethod但是在运行时确实有效。问题:如何让新添

javascript - Ember 中同时存在同一 Controller 的多个实例

刚刚观看了EmberPeepcode视频。它提醒我的一件事是Controller是单例的,因此每个Controller的单个实例在运行时创建,并且Controller的数据属性根据需要换入/换出。但是当您需要在屏幕上同时激活同一Controller的多个版本时会发生什么。如果我有多个example.handlebars模板,每个模板都需要同时在屏幕上由其自己版本的ExampleController支持,会发生什么情况?Ember如何处理这种情况? 最佳答案 有几种方法可以解决这个问题(在我的previousanswer中提到)。方法

javascript - 试图找出一些js代码中的 'this'

functionbuttonClicked(){vartext=(this===window)?'window':this.id;console.log(text);}varbutton1=document.getElementById('btn1');varbutton2=document.getElementById('btn2');button1.onclick=buttonClicked;button2.onclick=function(){buttonClicked();};问题:点击button1,显示:btn1,点击button2和button3,显示:window,为什