Questions tagged «this»

在许多面向对象的编程语言中引用当前类实例或对象的关键字。

11
如何在回调中访问正确的“ this”?
我有一个构造函数注册一个事件处理程序: function MyConstructor(data, transport) { this.data = data; transport.on('data', function () { alert(this.data); }); } // Mock transport object var transport = { on: function(event, callback) { setTimeout(callback, 1000); } }; // called as var obj = new MyConstructor('foo', transport); 运行代码段隐藏结果展开摘要 但是,我无法data在回调内部访问已创建对象的属性。看起来好像this不引用创建的对象,而是引用另一个对象。 我还尝试使用对象方法而不是匿名函数: function MyConstructor(data, transport) { this.data = data; …
1425 javascript  callback  this 

22
“ this”关键字如何工作?
Наэтотвопросестьответына 堆栈溢出нарусском:Потеряконтекставызова 我注意到,对于thisStack Overflow网站上的JavaScript,关键字是什么以及如何正确(以及错误地)使用关键字似乎没有明确的解释。 我目睹了它的一些非常奇怪的行为,并且未能理解为什么会发生它。 如何this工作以及何时使用?
1308 javascript  this 

7
AngularJS控制器中的'this'与$ scope
在AngularJS主页的“创建组件”部分中,有以下示例: controller: function($scope, $element) { var panes = $scope.panes = []; $scope.select = function(pane) { angular.forEach(panes, function(pane) { pane.selected = false; }); pane.selected = true; } this.addPane = function(pane) { if (panes.length == 0) $scope.select(pane); panes.push(pane); } } 请注意,该select方法是如何添加到的$scope,但是该addPane方法是添加到的this。如果将其更改为$scope.addPane,代码将中断。 该文档说实际上存在区别,但是没有提到区别是什么: 以前的Angular版本(1.0 RC之前的版本)允许您this与该$scope方法互换使用,但情况不再如此。在作用域上定义的方法内部this并且$scope可以互换(将设置this为$scope),但在控制器构造函数中则不能如此。 如何this和$scope在AngularJS控制器的工作?


7
'$(this)'和'this'有什么区别?
我目前正在研究本教程:jQuery入门 对于以下两个示例: $("#orderedlist").find("li").each(function (i) { $(this).append(" BAM! " + i); }); $("#reset").click(function () { $("form").each(function () { this.reset(); }); }); 请注意,在第一个示例中,我们用于$(this)在每个li元素内附加一些文本。在第二个示例中,我们this在重置表单时直接使用。 $(this)似乎比经常使用this。 我的猜测是,在第一个示例中,$()是将每个li元素转换为可以理解append()功能的jQuery对象,而在第二个示例中,reset()可以直接在表单上调用它。 基本上,我们需要$()特殊的仅jQuery函数。 它是否正确?
567 javascript  jquery  this 




18
我什么时候应该在课堂上使用“ this”?
我知道这this是指当前对象。但是我不知道何时真正需要使用它。例如,如果我使用x而不是this.x某些方法,会有什么区别吗?可能x会引用所考虑方法的局部变量吗?我的意思是仅在此方法中可见的变量。 那this.method()呢 我可以使用吗?我应该使用它吗?如果仅使用method(),默认情况下是否不会将其应用于当前对象?
267 java  oop  this 

7
何时调用活动上下文或应用程序上下文?
关于这两个上下文的内容有很多报道。.但是我仍然不太正确。 到目前为止,据我了解:每个类都是其类的一个实例,这意味着某些程序员建议您this.getApplicationContext()尽可能频繁地使用它,以免“泄漏”出任何内存。这是因为另一个this(获取Activity实例上下文)指向的Activity是每次用户倾斜手机或离开应用程序等时都将销毁的一个。显然,垃圾收集器(GC)无法捕获,因此使用了过多的内存.. 但是任何人都可以拿出一些非常好的编码示例,使用它们将是正确的事情this(获取当前Activity实例的上下文),而应用程序上下文将是无用/错误的?

30
您何时使用“ this”关键字?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我很好奇其他人如何使用此关键字。我倾向于在构造函数中使用它,但也可以在整个类中以其他方法使用它。一些例子: 在构造函数中: public Light(Vector v) { this.dir = new Vector(v); } 别处 public void SomeMethod() { Vector vec = new Vector(); double d = (vec * vec) - (this.radius * this.radius); }
249 c#  coding-style  this 


5
如何将此上下文传递给函数?
我以为这是我可以轻松搜索的东西,但是也许我没有问正确的问题... 如何在给定的javascript函数中设置“ this”所指的内容? 例如,与大多数jQuery函数一样,例如: $(selector).each(function() { //$(this) gives me access to whatever selector we're on }); 如何编写/调用自己的独立函数,并在调用时具有适当的“ this”引用?我使用jQuery,因此,如果有jQuery特定的方式可以做到,那将是理想的选择。
213 javascript  jquery  scope  this 

4
如何从jQuery选择器中排除$(this)?
我有这样的事情: <div class="content"> <a href="#">A</a> </div> <div class="content"> <a href="#">B</a> </div> <div class="content"> <a href="#">C</a> </div> 当单击这些链接之一时,我要在未单击的链接上执行.hide()函数。我了解jQuery具有:not选择器,但是在这种情况下我不知道如何使用它,因为有必要使用$(".content a") 我想做类似的事情 $(".content a").click(function() { $(".content a:not(this)").hide("slow"); }); 但在这种情况下,我不知道如何正确使用:not选择器。

2
为什么“ this”是指针而不是引用?
我在阅读有关C ++优缺点的问题的答案,并在阅读注释时遇到了疑问。 程序员经常发现“ this”是一个指针而不是一个引用令人困惑。另一个困惑是为什么“ hello”不是std :: string类型,而是求值为char const *(指针)(在数组到指针的转换之后)– Johannes Schaub-litb 08年12月22日在1:56 这仅表明它没有使用与其他(后来的)语言相同的约定。– le dorfier 08年12月22日在3:35 我将“这个”事情称为一个非常琐碎的问题。糟糕,感谢您在我的未定义行为示例中发现了一些错误。:)尽管我不了解有关尺寸的信息与第一个信息有关。完全不允许指针指向已分配的内存之外– jalf 08年12月22日在4:18 这是持续不断的痛苦吗?– yesraaj 08年12月22日下午6:35 如果方法是const int getFoo()const,则它可以是常量。<-在getFoo的范围内,“ this”是常量,因此是只读的。这样可以防止错误,并为调用者提供一定程度的保证,即该对象不会更改。– Doug T. 08年12月22日在16:42 您不能重新分配“此”。即您不能执行“ this =&other;”,因为这是一个右值。但这是T *类型,而不是T const类型。即它是一个非恒定指针。如果您使用的是const方法,则它是指向const的指针。T常量 但指针本身是非常量– Johannes Schaub-litb 08年12月22日在17:53 可以这样想“ this”:#define this(this_ + 0),其中编译器创建“ this_”作为指向对象的指针,并使“ this”成为关键字。您不能分配“ this”,因为(this_ + 0)是一个右值。当然不是这样的(没有这样的宏),但是它可以帮助理解它– Johannes Schaub-litb …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.