草庐IT

this_and_that

全部标签

javascript - Backbone Js : . on and .listen vs .bind

这个问题在这里已经有了答案:Backbonejs.listenTovs.on(2个答案)关闭5年前。.on、.listenTo、.bind有什么区别?我在这里测试了它们,它们似乎做同样的事情:回调。varNewStatusView=Backbone.View.extend({events:{"submitform":"addStatus"},initialize:function(options){//using.on//this.collection.on("add",this.clearInput,this);//orusingbind://_.bindAll(this,'addS

javascript - onClick 函数 "this"返回窗口对象

我的JavaScript应用程序遇到了令人头疼的问题。如果我这样写一个元素:我得到“LI”。但是如果我这样做:“foo()”在哪里:functionfoo(){alert(this.tagName);}我得到“未定义”。我不知道“this”在附加功能方面应该如何工作。但是,我感到困惑,因为“this”没有选择元素,但显然默认为“window”。我不明白为什么会这样。谁有解释吗? 最佳答案 那是因为您没有在JavaScript函数调用中传递对this的引用。JavaScript函数中的this与onClick示例中引用的对象不同。试试

javascript - "this.el"在 $ ('ul' , this.el 中的含义)

我刚刚学习了一些主干教程,我有一个一般的jQuery问题,我实际上已经想知道了一段时间。有时我会在jQuery选择器中看到带有第二个参数的调用,例如$('ul',this.el)。选择器中第二个参数的用途是什么?我并不是说在任何Backbone示例的上下文中,只是一般来说,在选择器中传递第二个参数的目的是什么,为什么它总是传递到那里的对象?我找不到关于此的任何文档。 最佳答案 含义等同于:$(this.el).find('ul')在内部,经过一系列测试后,jQuery发现它需要将它翻转到上面的.find()调用,它这样做了,然后重新

javascript - 如何删除在 TypeScript 中使用 "this"的事件监听器?

在JavaScript中,对于需要访问私有(private)成员和函数的事件处理程序,我可以依赖那些在我的事件处理程序函数中可访问的函数范围,并执行如下操作:theElement.addEventListener("click",onClick);及以后:theElement.removeEventListener("click",onClick);在TypeScript中,我需要使用匿名函数让this成为包含对象,如下所示:theElement.addEventListener("click",(event)=>this.onClick(event));在这种情况下,我无法从监听事件

javascript - $(this).attr ("id") 不工作

正如标题所说,当我尝试获取元素的id属性时,我总是得到“undefined”,基本上我想做的是在值为“other”时用输入框替换元素。代码如下:functionshowHideOther(obj){varsel=obj.options[obj.selectedIndex].value;varID=$(this).attr("id");alert(ID);if(sel=='other'){$(this).html("");}else{$(this).css({'display':'none'});}}HTML:Race:SelectoneonetwothreeOther这可能是我没有注意

javascript - backbone.js this._configure 在调用 View 时未定义

TypeError:表达式'this._configure'[undefined]的结果不是函数。每当我扩展Backbone.View时,我都会遇到这个错误我的应用程序结构如下://index.js$(function(){window.Project=Backbone.Model.extend({});window.ProjectCollection=Backbone.Collection.extend({});window.projects=newProjectCollection;window.ProjectView=Backbone.View.extend({});window

javascript - 如何使用 JSHint 禁用有关 'this' 和严格模式的警告?

我正在使用AngularJS(v1.5)编写一个网络应用程序,所以我有一些Controller,在这些Controller中我经常声明如下内容:functionmyController($someDirectives,...){varctrl=this;//Mycode}问题是当我对我的代码进行JSHint时,我收到了针对我在Controller中声明的所有“this”的警告消息:Ifastrictmodefunctionisexecutedusingfunctioninvocation,its'this'valuewillbeundefined.我必须明确指出,在我的.jshintr

javascript - 为什么 Google Chrome 浏览器的 Math.random 数字生成器不是 *that* 随机数?

今天我在各种浏览器中运行一些单元测试时遇到了一个奇怪的“错误”。在今天之前,我已经在Firefox中多次运行过测试,甚至在IE中运行过,但显然还没有在Chrome(v19-dev)中运行过。当我在Chrome中运行它们时,它始终未能通过一项测试,因为我计算的两个值不匹配。当我真正深入研究正在发生的事情时,我意识到问题在于我假设如果我用100,000个Math.random()值填充一个数组,它们都是唯一的(那里不会有任何碰撞)。事实证明,在Chrome中并非如此。在Chrome中,我始终得到至少两对匹配的值(共100,000个)。Firefox和IE9从未经历过冲突。这是我写的一个js

javascript - Mocha , Chai : Assert that Object is included in an Array of Objects

Chai有一个很好的方法来断言数组是否包含某个元素expect([1,2,3]).to.include(2);我想要的是类似的东西,给定一个对象数组:expect([{a:1},{b:2}]).to.include({b:2});这可能吗? 最佳答案 这是一种替代的、非顺序依赖的集合方法:数组expect([1,2,3]).to.include.members([3,2,1])您还可以将其与deep标志一起使用以比较对象:对象数组expect([{id:1}]).to.deep.include.members([{id:1}]);对

JavaScript 模块模式 - 使用 "return this"怎么样?

在阅读了一些有关模块模式的内容后,我看到了几种返回您想要公开的属性的方法。除了私有(private)属性和方法之外,最常见的方法之一是在“return”语句中声明您的公共(public)属性和方法。一种类似的方式(“揭示”模式)是提供对您希望公开的属性和方法的简单引用。最后,我看到的第三种技术是在模块函数内创建一个新对象,在返回所述对象之前将新属性分配给该对象。这是一个有趣的想法,但需要创建一个新对象。所以我在想,为什么不直接使用this.propertyName来分配你的公共(public)属性和方法,最后使用returnthis呢?这种方式对我来说似乎更简单,因为您可以使用通常的v