草庐IT

Prototype

全部标签

javascript - 如何在不使用原型(prototype)的情况下链接函数?

我有一堆有用的函数,是我一生中收集的。functionone(num){returnnum+1;}functiontwo(num){returnnum+2;}我可以用two(two(one(5)))调用它们但我更愿意使用(5).one().two().two()如何在不使用原型(prototype)的情况下实现这一点?我试图看看下划线链是如何工作的,但是他们的代码太复杂了,无法理解 最佳答案 点语法是为对象保留的。所以你可以做类似的事情functionMyNumber(n){varinternal=Number(n);this.on

javascript - 列出 Javascript 对象的所有原型(prototype)属性

有没有其他方法可以查找javascript对象的原型(prototype)属性。假设我有这样的经历。functionproton(){this.property1=undefined;this.property2=undefined;};proton.prototype={sample1:function(){return'something';},sample2:function(){return'something';}};varmy_object=newproton();console.log(Object.keys(my_object));返回["property1","pro

javascript - 检查构造函数是否继承了 ES6 中的另一个构造函数

我有一种情况需要检查构造函数(X)在其原型(prototype)链中是否有另一个构造函数(Y)(或者是Y本身)。最快的方法可能是(newX())instanceofY。在这种情况下,这不是一个选项,因为如果在没有有效参数的情况下实例化,所讨论的构造函数可能会抛出异常。我考虑的下一个方法是:constdoesInherit=(A,B)=>{while(A){if(A===B)returntrue;A=Object.getPrototypeOf(A);}returnfalse;}这行得通,但我无法摆脱这样一种感觉,即我错过了一些更直接的方法来检查它。有吗? 最佳

javascript - 向没有 .prototype 的构造函数添加新属性

当我有我想用作构造函数的函数时,请说:functionclog(x){vartext=x;returnconsole.log(text);}我已经做了一些实例varbla=newclog();现在我想添加新功能,所以我会使用clog.prototype.alert=alert(text);如果我只是这样做会有什么区别:clog.alert=alert(text);这不会被clog的对象继承吗?是他们的原型(prototype)吗? 最佳答案 由构造函数创建的实例(在您的情况下为clog)继承对clog.prototype的引用。目的

javascript - 我可以在不使用 new 关键字的情况下构造 JavaScript 对象吗?

这是我想做的:functiona(){//...}functionb(){//Somemagic,returnanewobject.}varc=b();cinstanceofb//->truecinstanceofa//->truebinstanceofa//->true这可能吗?我可以通过将aHook到其原型(prototype)链中,轻松地使b成为a的实例,但随后我必须执行newb(),这是我要避免的。我想要的可能吗?更新:我觉得明智地使用b.__proto__=a.prototype可能是可行的。下类后我会尝试更多。更新2:下面是您能得到的最接近的,这对我来说已经足够了。感谢大家

javascript - 如何移动到数组的上一个/下一个元素

假设我们有一个整数列表:varfibonacci=[1,1,2,3,5,8,13,21];我希望能够按照以下方式获取下一个和上一个元素(只是移动元素指针,而不修改数组)(例如,可能没有原型(prototype)来重新定义Array接口(interface),但为什么不这样做):fibonacci.prev();//returnsfalsefibonacci.next();//returns1fibonacci.next();//returns1fibonacci.next();//returns2fibonacci.next();//returns3fibonacci.next();/

javascript - "iframe sandbox"技术安全吗?

更新:由于这个问题没有答案,所以我稍微改变了这个问题。下面链接的Dean博客上的帖子评论表明此技术在Safari中不起作用。我现在的问题是:下面描述的技术在现代浏览器中是否有效*,特别是有人可以确认它是否在Safari中有效吗?这是最近的blogpost.它在某一时刻说:Sandboxednatives...aresupportedinavarietyofbrowsers,including...Safari2.0+...但后来说iframe技术“被除Safari之外的所有主要浏览器支持”,他展示的回退涉及使用伪造的构造函数和__proto__做一些奇怪的事情,这似乎有点哈克。我几乎很

javascript - 创建一个 JS 类 : IIFE vs return prototype

让我们看两个例子,我将在其中尝试解释我想理解的内容。varCar=function(){//InitclassfunctionCar(){};//Privatefunc/varsvarprivate={color:'red'};//Publicfunc/varsCar.prototype={newColor:function(color){private.color=color},getColor:function(){returnprivate.color}};returnCar.prototype;//returnwithprototype};varmyCar=newCar();和

javascript - 将继承与模块模式相结合

我喜欢返回构造函数的模块模式,如下所述:http://elegantcode.com/2011/02/15/basic-javascript-part-10-the-module-pattern/但是我不确定如何从使用此模式实现的对象继承。假设我有一个这样实现的父对象......namespace('MINE');MINE.parent=(function(){//privatefuncsandvarshere//PublicAPI-constructorvarParent=function(coords){//...doconstructorstuffhere};//PublicAP

javascript - 据说所有 Javascript 对象都有一个原型(prototype)属性,但如果 foo 是一个函数,我只看到 foo.prototype ?

人们常说每个Javascript对象都有一个prototype属性,但我发现只有当foo时foo.prototype才有值是一个函数。在Chrome和Firefox上,obj.__proto__有一个值——这是prototype属性吗?但是在IE9上,它不会工作(有什么方法可以吗?),我认为通过prototype属性,这意味着obj.prototype应该工作?我明白Object.getPrototypeOf(obj)似乎显示了这个prototype属性,但为什么需要一个特殊的方法来获取它?为什么不像person.name,就是获取person对象的name属性呢?更新:顺便说一下,o