草庐IT

函数组件

全部标签

javascript - 在其中一个原型(prototype)函数中调用 JavaScript 对象的构造函数是否正确?

我正在审查一位同事的JavaScript代码,他写了一个对象原型(prototype)函数,我认为它不符合面向对象编程的原则。Game.prototype.reset=function(){if(game.over){game.over=false;game=newGame(players);}}下面几行,游戏变量被声明为全局变量。vargame=newGame(players);那么,从其构造函数之一创建一个新的Game对象是否正确?代码完美运行。谢谢! 最佳答案 他不应该在原型(prototype)方法中引用变量game,因为g

javascript - Ember.js 动态组件

我有两个模型Admin和User我的申请模板如下//application.hbs{{outlet}}{{header-nav}}我想做什么(如果可能的话)使{{header-nav}}可定制,我解释说:如果admin验证我想渲染组件{{admin-header}}在user进行身份验证的情况下,它应该呈现{{user-header}}。我如何构建要在application.hbs中动态呈现的内容? 最佳答案 您可以使用{{component}}帮助程序,但您需要先确定组件名称,因此,在您的Controller中:nameForCo

javascript - 在 TypeScript 中动态返回一个类构造函数

我正在尝试在TypeScript中构建一种机制,以根据表示类名称的字符串参数返回类的新实例。基本上,我正在尝试创建一个工厂,只是我不太清楚如何在TypeScript中执行此操作。在纯JS中,我可以通过将所有类构造函数存储在一个键/值对象中并调用newClassDictionary[className]();来解决这个问题——这不是最可靠的解决方案,但它在这种情况下工作。我似乎无法获得类型和转换的正确组合来在TypeScript中完成此操作。有没有更好的办法?我在TypeScript中找不到工厂模式的任何示例,所以现在我只有一点switch语句,它丑陋且不灵活。

javascript - 使用 Jasmine 测试 Angular Controller 中的非作用域函数

Jasmine是使用最广泛的测试框架之一,以BDD方式对javascript代码进行单元测试。我试图将它用于AngularJS组件测试。AngularJS文档提供了以下示例代码describe('PasswordController',function(){beforeEach(module('app'));var$controller;beforeEach(inject(function(_$controller_){$controller=_$controller_;}));describe('$scope.grade',function(){it('setsthestrength

javascript - 函数声明不能​​嵌套在非函数 block 中

我正在阅读有关函数声明与函数表达式的内容,但我无法弄清楚以下语句的含义:FunctionDeclarationsoccurasstandaloneconstructsandcannotbenestedwithinnon-functionblocks.请有人用一个例子来解释作者的意思,准确地说:“......不能嵌套在非功能block中”。链接是:https://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/ 最佳答案

javascript - `this` 在全局上下文和内部函数中

根据thisexplanationinMDN:在全局上下文中,this指的是全局对象在函数上下文中,如果函数被直接调用,它又引用了全局对象然而,以下内容:varglobalThis=this;functiona(){console.log(typeofthis);console.log(typeofglobalThis);console.log('isthistheglobalobject?'+(globalThis===this));}a();...放在文件foo.js中产生:$nodejsfoo.jsobjectobjectisthistheglobalobject?false

javascript - 外部 react 组件看不到 React.Component

当我链接为npm包时,外部React组件显示UncaughtTypeError:Cannotreadproperty'Component'ofundefined。我将package.json中的一个包链接为"react-mapbox":"https://github.com/varya/react-mapbox.git"。然后我在代码中使用它import{render}from'react-dom';importMapBoxfrom"react-mapbox";render(Hello,world!,document.getElementById('example'));但没有任何效果

javascript - Ember "this"在组件中未定义

我正在尝试制作一个进度条,它会随着更多挑战的完成而更新。但是,组件无法访问该属性,因为它是未定义的。我已经注入(inject)了一个服务,我正在尝试从该服务的一个属性创建一个计算属性。但是,除非在调试中,否则这始终是未定义的。importEmberfrom'ember';exportdefaultEmber.Component.extend({progress:0,game:Ember.inject.service(),events:this.get("game.challenges")});this怎么能在上面的代码中没有定义呢?它如何不绑定(bind)任何范围?我已经投入了这样的调

javascript - react 路由器不渲染组件

我们像这样使用react-router:ReactDOM.render(,document.getElementsByClassName("container")[0]);varAnyPic=React.createClass({render:function(){return(Helloworld)}});varPhotoView=React.createClass({render:function(){return(Thisisthephotoview)}});在包含react-router之后,以前只是localhost:8000的内容开始看起来像localhost:8000/#

javascript - JavaScript 中的函数 ()()

我不确定如何调用/构建这个问题标题,但谁能解释一下下面的代码是做什么的?varroutes=require("./routes/routes.js")(app);我看到second()正在传递应用程序,这是做什么的?https://github.com/couchbaselabs/restful-angularjs-nodejs/blob/master/app.js令我惊讶的是,在上面的代码中变量routes根本没有在app.js中使用?目的是什么。我很困惑(app)argument在这里有什么神奇的作用吗? 最佳答案 结构foo(