草庐IT

javascript - 你如何从javascript中的子对象调用父对象函数

所以,我正在阅读JohnResig的blog,看到了他的micro-templatingjavascriptengine并决定尝试实现自己的javascript模板管理系统,加深对原型(prototype)继承的理解。然而,在我开始编写它的那一刻,我遇到了一个问题。首先,这是我的基本代码:functiontemplate_manager(){};template_manager.prototype={tags:{},templates:{},output:{},default_template:"default",set:function(tags,template_name){tem

javascript - JS 实现类似 "extends"的功能(非常简单的继承)

假设我在JS中有一个带有原型(prototype)函数的类...functionFoo(){this.stuff=7;this.otherStuff=5;}Foo.prototype.doSomething=function(){};Foo.prototype.doSomethingElse=function(){};现在说我想通过子类化来“扩展”这个类。在Java中,这看起来像...publicclassBarextendsFoo{}现在我知道在JS中真的没有类的概念,一切都可以改变,这一切都归结为一堆废话字典,但尽管如此,我应该能够复制一个类的原型(prototype)并将其附加到

javascript - 了解类 : Compose a Triangle from extending 3 points?

问题:我怎样才能使用Triangle类扩展Point(supers(?))并组成一个如下所示的对象://"name":"ThomasTheTriangle",//"points":[//{age:"2015-05-28T06:23:26.160Z",x:1,y:1},//{age:"2015-05-28T06:23:26.161Z",x:0,y:3},//{age:"2015-05-28T06:23:26.164Z",x:2,y:3}//]JS:classPoint{constructor(x,y){this.name="Point"this.age=newDate();this.x=

Javascript:设置对象属性

我希望能够做到这一点:varuser1={name:'John',gender:'male'}varuser2={name:'James',gender:'male',email:'james@gmail.com'}user1.someSetMethod({email:'john@gmail.com'});user2.someSetMethod({name:'Jenny',gender:'female'});期望的结果:varuser1={name:'John',gender:'male',email:'john@gmail.com'}varuser2={name:'Jenny',ge

javascript - jQuery 插件 - 初始化后更新设置

我有一个jQuery插件,我希望能够即时更改选项,就像这个例子:$('.element').pwstabs('options','effect',scale)或类似的东西。我尝试添加update:function,尝试添加Plugin.prototype.update,但仍然不知道该怎么做:)插件结构如下:;(function($,window,document,undefined){varpluginName="pwstabs",defaults={effect:'scaleout',defaultTab:1,containerWidth:'100%',tabsPosition:'h

javascript - 使用 Ramda 递归 "merge"或 "extend"?

我正在尝试找到与Lodash'smerge等效的函数使用Ramda执行基于递归对象键的“合并”或“扩展”。该行为类似于以下内容:letmerged=R.someMethod({name:'Matt',address:{street:'Hawthorne',number:22,suffix:'Ave'}},{address:{street:'Pine',number:33}});console.log(merged);//=>{name:'Matt',address:{street:'Pine',number:33,suffix:'Ave'}}我注意到以下pullrequest简要介绍了

Javascript 模块模式 : How to inject/create/extend methods/plugin to our own library?

我是javascript的新手。对不起,如果我的问题有任何问题。如何将方法或插件注入(inject)/创建/扩展到我们自己的库中?这是“yourlib.js”varYourlib=(function(){//privt.varvarselectedEl={}//someprivt.functfunctionsomething(){}return{getById:function(){},setColor:function(){}}}());下面是你的“plugin.js”/*Howtocreatethepluginpattern?Example:Iwanttocreate/inject

javascript - 使用下划线的 _.extend(...) 而不覆盖某些目的地的成员

我希望能够使用underscore的extend功能并实现一个特定的案例。默认情况下,extend用源的成员覆盖目标的任何现有成员。我的问题是我想保持目标和源的初始化方法完好无损,所以我所做的大致是:addComponent:function(comp,init){variF;if(comp.initialize){iF=comp.initialize;deletecomp["initialize"];}_.extend(this,comp);if(iF){comp.initialize=iF;comp.initialize.call(this,init);}returnthis;}这

javascript - _.extend/_.assign 的目的?

我看过很多教程或代码示例,其中开发人员使用Underscore的_.extend方法或Lodash的_.assign当简单地添加属性就足够的方法时,它总是让我感到困惑,使用扩展/分配而不是简单地添加属性有什么好处?有很多次我可以看到使用这些方法的好处,例如,当从另一个对象添加多个属性时,但大多数时候我看到它在下面的示例中使用,但我没有看到任何好处。对于以下代码而不是分配属性,是否有我不知道的好处?http://tech.pro/tutorial/1734/building-decoupled-javascript-applications-with-postaljsvarWeather

javascript - 在不删除静态属性的情况下覆盖函数

如果我有这样的功能:functiona(){console.log('a');}然后像这样分配一个静态属性:a.static='foo';但是假设我想用这样的另一个函数覆盖该函数:varold=a;a=function(){console.log('new');old.call(this);};a.static//undefined自从我为a分配了一个新函数后,它的静态属性就丢失了。有没有一种巧妙的方法来保留静态属性而无需循环和手动复制它们?更新:这是一个真实的场景:在BootstrapjQuery插件中,作者将默认值分配给属性函数,如下所示:$.fn.modal=function()