草庐IT

data-prototype

全部标签

javascript - 用 sinon stub 一个原型(prototype)方法

假设我有以下方法:Controller.prototype.refresh=function(){console.log('refreshing');}Controller.prototype.delete=function(object){varself=this;object.delete({id:object.id},function(){self.refresh();});}现在在我的(mocha)测试中:beforeEach(function(){varcontroller=newController();varproto=controller.__proto__;varob

javascript - 可以从函数原型(prototype)访问私有(private)构造函数范围的变量吗?

根据我对javascript的理解,原型(prototype)方法不能访问构造函数范围内私有(private)的变量,varFoo=function(){varmyprivate='Iamprivate';this.mypublic='Iampublic';}Foo.prototype={alertPublic:function(){alert(this.mypublic);}//willworkalertPrivate:function(){alert(myprivate);}//won'twork}这很有道理,但有没有什么安全且好的方法可以解决这个问题?由于使用原型(prototy

javascript - 学习.prototype

编辑:对于那些将来看到这篇文章的人,thissite毫无疑问,这对我消化Javascript至关重要。如果您来自传统的OOP背景,我强烈推荐它。UML-esq图非常棒。我仍然无法理解Javascript中的.prototype属性是什么。它只是对另一个对象的引用吗?或者它是指向另一个对象的指针的引用?我来自C/C++/x86,只是看不到它是如何工作的。让我们看一些我目前如何看待事物的例子;它有助于指出我的错误,看看事情是如何工作的。我什至不知道其中一些是否是有效的语法。Object和Function分别是全局对象/函数对象。1//Global.prototype=??2//Functi

javascript - new Array() 与 Object.create(Array.prototype)

天真的困惑:vararr1=newArray();vararr2=Object.create(Array.prototype);//Insertingelementsin"botharrays"arr1[0]=0;arr1[9]=9;arr2[0]=0;arr2[9]=9;arr1.push(10);arr2.push(10);console.log(arr1.length);//prints11console.log(arr2.length);//prints1这两个对象都继承了Array.prototype,但它们使用[]运算符的行为不同。为什么? 最佳

javascript - 从构造函数中将方法附加到原型(prototype)

这是描述JavaScript中“类”或构造函数的教科书标准方法,直接来自JavaScript权威指南:functionRectangle(w,h){this.width=w;this.height=h;}Rectangle.prototype.area=function(){returnthis.width*this.height;};我不喜欢这里的悬空原型(prototype)操作,所以我试图想办法将area的函数定义封装在构造函数中。我想到了这个,但我不期望它能工作:functionRectangle(w,h){this.width=w;this.height=h;this.con

javascript - jquery .data() 方法

当我在jQuery的数据中存储像{a:1,b:2}这样的对象时,它是复制该对象还是保存对它的引用?我有一个巨大的对象,我希望不同的元素存储从不同点到同一个对象的不同引用,我不希望它被复制。喜欢varobj={a:{one:1,two:2},b:{apple:'yummy',banana:'ehh'}c:{d:{'jQuery':jQuery}e:['Yougetthepoint']}};$('div').data('info',obj.b);$('#JQ').data('jq_reference',obj.c.d.jQuery); 最佳答案

javascript - 更改 window.location 原型(prototype)以禁用某些重定向?

我正在尝试使用Greasemonkey在文档的开头有选择地禁用window.location。我不想完全禁用javascript,只是禁用一些使用javascript完成的重定向。它们看起来像这样:window.location="unwantedurl"; 最佳答案 我认为这是不可能的。您不能覆盖window.location上的属性或方法(静默失败)你不能用location.__proto__=Something.prototype重新定义它的原型(prototype)location.constructor.prototype

javascript - "prototype"的反义词是什么?

考虑以下几点:varo={foo:'bar'};varp=Object.create(o);如果o是p的原型(prototype),那么p相对于o是什么? 最佳答案 我不知道对于原型(prototype)是另一个对象的对象的正式术语是否有任何广泛的共识,但恕我直言,术语派生对象是可以接受的。原型(prototype)继承的要点是一个对象继承自另一个对象,或者派生自另一个对象。在一些经典的OO语言中,例如C++,您会听到术语派生类,因为类继承自其他类。因为在原型(prototype)语言中继承是对象之间的,所以我会说“派生对象”是有道

javascript - 使用装饰器将属性分配给非原型(prototype)

我正在构建前端/后端数据结构之间的简单映射。为此,我创建了一个如下所示的装饰器:functionApiField(apiKey:string,setFn:(any)=>any=(ret)=>ret,getFn:(any)=>any=(ret)=>ret){returnfunction(target:AbstractModel,propertyKey:string){target.apiFieldsBag=target.apiFieldsBag||{};_.assign(target.apiFieldsBag,{[propertyKey]:{apiKey:apiKey,setFn:set

javascript - 附加的事件处理程序 'meta-data' 存储在哪里?在 "DOM,"对象上,或者...?

我一直想知道...所以你有这样的代码:$('#click-me');然后你附上它:$('#click-me').click(someFunction);“元数据”在哪里:“嘿“jQuery-object#click-me”,当你被点击时,我会指向'someFunction'!”我知道事件处理程序可能会被破坏,例如我在Backbone.js中的情况,由于我重新呈现整个页面,我的事件停止触发,沿途破坏了一些背景函数/对象/View..(这就是我问这个问题的背景)现在,我的问题是:事件“元数据”存储在哪里以及如何销毁它们?它们是否存储在将其绑定(bind)到函数的函数中?它们是否在DOM“元