草庐IT

javascript - 什么时候在 javascript OO 中使用它?

在JavascriptOO中,什么时候应该使用this关键字?此外,如果我想从同一个类的另一个方法调用一个类的方法,我应该使用this还是只使用函数名?例如,这是正确的吗?functionFoo(){this.bar=function(){alert('bar');}this.baz=function(){this.bar();//shouldIusethis.bar()orjustbar()?}} 最佳答案 谈到“面向对象”的JavaScript,这里有一个很好的指南MarkDickinson在这里链接到:PrivateMembe

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 - 为什么需要匿名函数来使用 setTimeout 保留 "this"

我已经多次使用setTimeout传递函数作为引用,例如setTimeout(someFunction,3000);在某些情况下,为了保留this的值,我不得不事先将其分配给一个变量,但不明白为什么以下内容不起作用:varlogger={log:function(){varthat=this;console.log(that.msg);setTimeout(that.log,3000);},msg:"test"};logger.log();然而,使用匿名函数确实有效:varlogger={log:function(){varthat=this;console.log(that.msg)

javascript - 在单个页面的多个位置使用时,JQuery 插件不起作用

我正在为我正在进行的项目编写一个JQuery插件,该项目从桌面设备上的选项卡式内容转变为移动设备上的Accordion。我使用JQueryBoilerplate(https://github.com/jquery-boilerplate/jquery-boilerplate/blob/master/dist/jquery.boilerplate.js)作为我的插件的初始模式。该插件在具有“.tabs2accordion”类的任何元素上调用,如下所示:$(".tabs2accordion").tabs2Accordion({state:"desktop"});如果页面上只有一个具有“.t

javascript - 主干 View 嵌套

我在原地转圈,似乎在我当前实现backbone.js的应用程序中遗漏了一些东西。问题是我有一个主AppView,它为页面初始化各种subview(图形、信息表等)。我的愿望是能够根据导航时传递的参数标志更改页面布局。我遇到的情况是,subview引用了模板呈现后的dom元素,但在主AppView初始化过程中无法访问这些元素。因此,主要问题是如何确保为每个事件绑定(bind)过程设置正确的dom元素以正确设置?使用以下代码,如果我有一个事件绑定(bind)到我的LayoutView中的模型更改,则会呈现布局,但后续View不会正确呈现。我摆弄过的一些东西是将所有View“.el”值设置为

javascript - React.JS this.state 未定义

我目前在React.JS中有这个组件,它在数组中显示传递给它的所有图像,onMouseOver它在下面显示一个按钮。我计划使用setState检查变量hover是真还是假,并相应地切换该图像的按钮,但是我不断收到以下错误:UncaughtTypeError:Cannotreadproperty'state'ofundefinedvarImageList=React.createClass({getInitialState:function(){returnthis.state={hover:false};},getComponent:function(index){console.lo

javascript - react 路由器浏览器后退按钮不起作用

我正在尝试使用ReactJS和react-router创建一个多步骤表单。表单步骤随状态而改变。如果我单击下一步按钮,状态步骤将增加并显示下一步。但是这样的话,如果我在第三步,然后点击浏览器的背面,我将被重定向到主页,而不是上一步。我的主要组件是这样的:componentWillMount(){console.log(this.props.params.id);}onButtonClick(name,event){event.preventDefault();switch(name){case"stepFourConfirmation":if(this.validation("four

javascript - 从另一个实例更新实例的属性

我正在寻找更新对象实例的最佳方法,例如在本例中myParentObjects的名称属性。我理解实现此目的的唯一方法是将父对象对子对象实例的引用作为参数传递给构造函数中的newmyChildObj(this,name)或myChildObj实例,如myChildObj.updateParentProperty(name)。我无法想象子对象向下嵌套4-5层,并且必须更新其父对象的属性传递(parent1,parent2,parent3,etc)它是参数,那将是管理噩梦!必须有更好的方法来更新父属性!functionmyParentObj(){this.name='jordan'this.n

javascript - 类属性必须是方法。预期为 '(' 但实际看到的是 '='

我有一个React应用程序,我有这段代码,但看起来fetchdata方法充满了语法错误,第一个出现在问题的标题上。这个方法有什么问题吗?importReact,{Component}from'react';import{Row,Col}from'antd';importPageHeaderfrom'../../components/utility/pageHeader';importBoxfrom'../../components/utility/box';importLayoutWrapperfrom'../../components/utility/layoutWrapper.js

类型化对象的 Javascript 序列化

我不清楚序列化/反序列化应该如何作用于JavaScript中的类型化对象。例如,我有一个包含各种成员和数组的“MapLayer”对象。我已经编写(但尚未测试)以下代码来尝试对其进行序列化:MapLayer.prototype.serialize=function(){varresult="{tileset:tilesets."+tilesets.getTilesetName(this.tileset)+",columns:"+this.columns+",rows:"+this.rows+",offsetX:"+this.offsetX+",offsetY:"+this.offsetY