jjzjj

prototype

全部标签

javascript - ES6 类/实例属性

这将是一个相对较长的问题,但我真的很想了解。问题底部制定的最终问题。我已经阅读了这个问题的答案:ES6classvariablealternatives关于为什么这在ES6中不被接受的语法的问题:classMyClass{constMY_CONST='string';constructor(){this.MY_CONST;}}1)第一个答案提到:Remember,aclassdefinitiondefinesprototypemethods-definingvariablesontheprototypeisgenerallynotsomethingyoudo.我不明白;基于类的语言中的

javascript - 为什么函数响应 .prototype 但常规对象不响应?

考虑:functionFoo(){}varx=newFoo();现在x和Foo具有相同的原型(prototype),但只有Foo响应.prototype:Object.getPrototype(x)===Foo.prototype//truex.prototype===Foo.prototype//falseFoo.prototype//Foo{}(dependingonwhichbrowser)x.prototype//undefined为什么x.prototype不起作用,而Foo.prototype却起作用? 最佳答案 pro

javascript - Array.prototype.map() 可以改变它调用的数组吗?

Mozilla说:mapdoesnotmutatethearrayonwhichitiscalled(althoughcallback,ifinvoked,maydoso).https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map具体来说,回调传递的第三个参数是:Thearraymapwascalledupon.我假设这意味着内存中的数组位置通过引用复制到回调中。因此,通过改变第三个参数,我们应该改变原始数组,但以下两段代码给出了冲突的结果:情况1,重新分配第三个

javascript - Jquery/MooTools/Prototype 是否消除了对 GWT 的需求?

我再也听不到GWT了。当它第一次出现时,它似乎在某些RIA圈子里风靡一时。但最近我的印象是GWT的受欢迎程度有所下降,因为像Jquery/MooTools/Prototype这样的解决方案提供了解决相同问题的更简单的方法。这是准确的还是GWT解决了不同类型的问题? 最佳答案 嗯,有点。GWT的最终产品最终成为类似于其他JS框架提供的东西-一种JavaScript解决方案,在很大程度上抽象出所有浏览器和DOM的不一致,因此您可以专注于RealWork™。但是,GWT和JS框架之间存在显着差异-使用GWT编写代码的程序员正在编写Java

javascript - "click anywhere to close"的原型(prototype)最佳实践?

我发现自己经常处于打开网页中的元素的情况-例如一个下拉菜单-如果用户点击页面上除了元素本身以外的任何地方,我想关闭它。为简单起见,大部分代码都是我自己编写的,而不是使用一些下拉菜单类。但是,我从来没有设法构建一个完全令人满意的实现:事件处理和冒泡在不同的浏览器中会以不同的方式工作,需要一些讨厌的解决方法,在某些情况下单击下拉按钮会在同一时刻开始关闭它,依此类推。是否有基于原型(prototype)的权威最佳实践来执行此操作?跨浏览器工作的东西-IE6是一个加号但不是必需的?就是这样:点击按钮-打开一个元素(例如,绝对定位的下拉菜单)。在元素内单击-元素保持打开状态。单击打开元素的按钮t

Javascript:我应该隐藏我的实现吗?

作为一名C#程序员,我有点习惯将可以而且应该私有(private)的东西设为私有(private),当JS类型向我公开其所有私有(private)部分时,我总是会有一种奇怪的感觉(这种感觉不是'引起')。假设我有一个具有draw方法的类型,该方法在内部调用drawBackground和drawForeground,单独调用它们毫无意义。我应该如何实现?选项1Foo=function(){this.draw();};Foo.prototype.draw=function(){this.drawBackground();this.drawForeground();};Foo.prototy

javascript - JavaScript 中的原型(prototype)

在JavaScript中,您可以用多种不同的方式做同样的事情。考虑示例:1:functionCircle(radius){return{"r":radius,"area":function(){returnCircle.pi*this.r*this.r;}}}Circle.pi=3.14159;vara=Circle(10);alert(a.area());2:functionCircle(radius){this.r=radius;}Circle.pi=3.14159;Circle.prototype.area=function(){returnCircle.pi*this.r*th

闭包中的 javascript 原型(prototype)和 "this"访问

我是js新手,对下面的代码很疑惑:Foo=function(arg){this.arg=arg;};Foo.prototype={init:function(){varf=function(){alert("currentarg:"+this.arg);//amexpecting"bar",gotundefined}f();}};varyo=Foo("bar");yo.init();我应该得到“currentarg:bar”,但得到的是“currentarg:undefined”。我注意到首先将this.arg复制到一个“普通”变量中,然后在闭包中引用这个变量:Foo.prototyp

javascript - 如何理解CoffeeScript的 `extends`关键字生成的JavaScript代码

这是由CoffeeScript的extends关键字生成的JavaScript代码。原型(prototype)链是如何设置的?var__hasProp=Object.prototype.hasOwnProperty,__extends=function(child,parent){for(varkeyinparent){if(__hasProp.call(parent,key))child[key]=parent[key];}functionctor(){this.constructor=child;}ctor.prototype=parent.prototype;child.prot

javascript - three.js继承模式

我想知道为什么three.js的代码结构是这样的:THREE.Camera=function(){THREE.Object3D.call(this);//addmoreCameraspecificpropertiesandmethods}THREE.Camera.prototype=newTHREE.Object3D();THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.//addmorecameraspecificmethods...我想知道为什么他们在当前构造函数中调用基础构造函数并且还为原