草庐IT

ref_this

全部标签

javascript - JS 和 OOP : abuse of `that = this` pattern

我对JS世界比较陌生。我习惯用QT编写UI(构建UI的好工具!)。使用QT,我正在为每个元素创建一个类:如果我有一个包含一些元素的表,我有一个用于每个元素的类和一个用于表的类(可能也用于行)。每个类都包含数据和操作其“DOM”的方法。现在在html中,我正在使用一些在div上包含空骨架的ejs文件,我正在编写一个类以通过jquery对其进行操作。例如:用户列表.ejs:functionUsersList(path){this.path=path;$('#userList>tbody').empty();this.loadAjax();}UsersList.prototype.loadA

javascript - 在 Controller 中使用 `this` 作用域时使用 $scope.$watch

我的Angular应用程序中有一个Controller:(function(angular){functionMyController(){this.name='Dave';//Iwanttohavecodelikethis:/*$scope.$watch('name',function(newValue,oldValue){console.log(oldValue,"changedto",newValue);});*/}window.myApp=angular.module('myApp',[]).controller('MyController',[MyController]);}

javascript - React JS this.props.data 未在子组件的 getInitialState 中定义,即使它是在渲染中定义的(并且在父级中定义)

场景:在同一个祖父包装器(->)中重用组件(->)以实现代码重用。首先,我分配了一个数据数组并循环以重新使用子组件(->)。对于第二个,它只是一个对象(具有与数组对象相同的属性),我直接在渲染中分配它(不需要this.props.data.map循环,因为已经只有一个对象)。问题:对于阵列,一切都按要求工作。this.props.data传递给child,状态通过各种事件更新,一切都很好。然而,对于单个对象,在之前一切正常.即使this.props.data包含有效值并正确分配给child组件,在的getInitialState,它莫名其妙地未定义(或设置为的getInitialSta

javascript - React - 当从 API 获取数据时,this.state 在 render 中为 null

我试图通过制作一个简单的应用程序来学习react,我试图从服务器获取json格式的数据,然后将其呈现给View。问题是我收到一个错误,它说this.state.data为空。我该如何解决这个问题?代码:classAppextendsReact.Component{constructor(){super();//Querydatafetch('http://localhost:8080/api?access_token=56d847accb86bddc243d4b93').then(response=>response.json()).then((data)=>{this.setStat

javascript - 在 Typescript 中为 `this` 关键字键入注释

我有一个独立函数,旨在使用Function.prototype.call提供的上下文。例如:functionfoo(){returnthis.bar;}>foo.call({bar:"baz"})baz有没有办法在这种情况下为this关键字提供Typescript类型注释? 最佳答案 首先,你可以使用特殊的thisparameter用于识别您期望的对象类型的语法this成为:functionfoo(this:{bar:string}){returnthis.bar;//nomoreerror}如果你直接调用它会有帮助:foo();/

javascript - 通过 React Router 的 withRouter HOC 转发 ref

我想设法专注于我用withRouter包装的组件。但是,当我给组件一个ref时,我收到一条关于将ref分配给无状态组件的警告。我假设这是因为ref被附加到withRouterHOC而不是我的组件,因为它是有状态的。我的一般设置如下所示://InnerComponent.jsclassInnerComponentextendsComponent{constructor(props){super(props);}}exportdefaultwithRouter(InnerComponent);//App.jsclassAppextendsComponent{constructor(prop

javascript - node.js 和浏览器之间关键字 "this"的不同行为

我已经尝试在ie、firefox和node.js中使用以下代码varx=10;varo={x:15};functionf(){console.log(this.x);}f();f.call(o);在浏览器中的结果是10、15,但是在node.js中的结果是undefined,15。请向我解释一下“this”关键字在浏览器和node.js中的不同行为是什么?我已经阅读了很多页面,但没有任何明显的答案。提前致谢。 最佳答案 在Nodejs中加载的Javascript文件会自动包装在匿名函数中。所以在Node中你真正运行的是:(funct

javascript - 可以在 RequireJS 模块中使用 'this' 关键字吗?

我定义了一个RequireJS模块(见下文)。它是网站上每个页面都需要的功能的集合。返回对象中的一个函数initTwitter()需要调用同一对象中的另一个函数shortenURL()。我收到一个控制台错误,内容为“TypeError:this.shortenURLisnotafunction.”所有这些函数最初都在一个常规的Javascript单例对象中,代码运行良好。我是RequireJS的新手,所以我不确定this关键字在RequireJS中的工作方式是否不同,或者我只是做错了什么。编辑:我也尝试删除“this”,但我收到“ReferenceError:shortenURLisn

javascript - this.initialize(arguments) 与 this.initialize.apply(this, arguments) : what's the difference?

如果您查看Backbone.js的源代码,您会看到此模式的多种用途:this.initialize.apply(this,arguments);例如,这里:varRouter=Backbone.Router=function(options){options||(options={});if(options.routes)this.routes=options.routes;this._bindRoutes();this.initialize.apply(this,arguments);};为什么不直接写this.initialize(arguments)呢?

javascript - this.route() 和 this.resource() 有什么区别?

我知道路由用于将URL映射到模板,但显然您可以使用this.route或this.resource定义路由App.Router.map(function(){this.route("about",{path:"/about"});this.route("favorites",{path:"/favs"});});App.Router.map(function(){this.resource('posts',{path:'/posts'},function(){this.route('new');});});如果您想为路线定义子路线,您是否只使用this.resource还是有其他我没有