问题标签 [this]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
93 浏览

jquery - JQuery:指的是正确的“this”

我正在尝试编写一个非常简单的插件,在锚鼠标悬停时会增加相应的锚文本大小,而在鼠标悬停时会删除锚。问题是我无法得到正确的“这个”。所以我有:

我这样称呼它:

我想我应该使用类似.call()or的东西.apply(),但我不确定如何使用,我找不到好的资源。

0 投票
1 回答
5807 浏览

javascript - 如何获取 Javascript 匿名函数的“this”(范围)?

假设我有一个匿名函数需要对其上下文进行操作,但它是绑定到“窗口”还是绑定到未知对象是不同的。

如何获取对调用匿名函数的对象的引用?

编辑,一些代码:

你可能会合理地问,你到底为什么想做这样的事情。好吧,我首先想解压缩作为数组传递的参数。就像 Python " *" 运算符所做的那样:

我在 SO 中进行了挖掘,发现了一篇告诉使用“apply()”的帖子:

有趣的是,如果在对象中,它将使用当前的“this”,如果不是,则使用“window”。

但我认为有一个问题:

如果“bar()”本身在一个对象中,那么“this”将引用“bar()”容器,因此它不起作用。

顺便说一句,我不想​​将范围作为参数传递

我当然可以将参数和函数连接为字符串,然后使用 eval,但我只想在找不到更干净的东西时才使用它。

当然,如果这是不可能的(毕竟,它可能是),那么我会这样做:

编辑 2:完整场景,如评论中所述。

我正在使用 qunit 在 Javascript 中执行单元测试。这很酷,但我错过了一种检查是否引发异常的方法。

最基本的测试就是这样完成的:

这个想法是制作类似的东西:

如果我能摆脱 eval,那就太好了。为什么我不想将范围用作参数?因为您可能希望循环引用具有不同范围的 20 个函数的容器,并在循环中对它们进行全部测试,而不是手动编写这些东西。

0 投票
8 回答
4333 浏览

java - Java 中 this 关键字的其他用法

(对于阅读我上一个问题的人来说,这是同一个老师和同一个项目。)

我的老师“检查”了我的 Web 应用程序项目代码并提供了一些建议。建议之一是即使在这种情况下也使用this关键字:

所以如果我听从他的建议,那将变成:

我问他为什么,他告诉我 this 关键字除了用于消除歧义之外还有另一种用法。快速谷歌搜索没有返回 this 关键字的其他用法的结果。甚至Sun 的 Java 教程也没有提到适合这种情况的其他用法。

0 投票
7 回答
3885 浏览

javascript - Javascript:将 OOP 方法附加到事件和“this”关键字

我是 OOP Javascript 的新手,在this关键字和事件方面遇到了麻烦。

我想要实现的是:我有多个 DOM 对象,并且不仅希望将公共事件绑定到它们,而且希望将有关上述对象的一些数据保存在全局容器中(以提高运行时性能)。

所以我所做的基本上是这样的:

稍后,在文档正文中,我可以添加以下内容:

更进一步,通过以下方式添加 DOM 元素:

不需要进一步的实现代码。

问题:如何在and方法中访问JS 类实例而不是window 元素initscroll

我知道,它不必通过this关键字,但我仍然没有想出任何东西。

附言

  • addEvent是一个非常基本的附加事件的功能,它只是对 IE/Fx 友好,没有其他功能。
  • 我正在编写的代码已经是功能性的,但是在程序形式上,我只是想对它进行 OOP。
  • 作为一个小问题,我以某种方式得到了这样的印象,即在 javascript 中不鼓励 getter/setter 方法,如果我使用它们可以吗?
0 投票
4 回答
1710 浏览

c++ - 类中的“this”指针

问题很简单......出于某种原因直接使用 this->yourvariable 或 yourvariable 有什么区别吗?

我没有发现任何问题,但我经常使用这个-> 并且想知道在继续之前是否有任何区别。

我在这里看到了一篇帖子的评论,我不记得是哪个帖子了,但是那个人说了一些关于使用关键字“this”的事情。

就个人而言,我觉得直接使用变量比直接使用更好。它使代码更容易和漂亮。

0 投票
1 回答
252 浏览

java - Drools 中出现的 this[''] 访问器是什么

只是在寻找一种将参数传递给Drools中的 getter 的方法......

我在 Eclipse Ganymede 中注意到智能感知有助于确定可用于在 Drools WHERE 子句中选择实体的 getter。只需键入一个字母并按 ctrl+Space 即可查看列表。我在Drools.NET中有另一个项目,它依赖于 C# 属性而不是 get 方法。 C#.NET允许你定义一个默认属性,public String this[String key]这样你就可以引用一个没有任何属性的列表myInstance["myKeyString"],我在Drools.NET中使用了它。我希望this['']出现在Java Drools中 WHERE 子句实体选择器的花括号之间的选项myInstance : myClass { ... }指的是类似的东西。

这是真的吗?如果是这样,我该如何使用它?

0 投票
2 回答
2486 浏览

c++ - 访问派生类中类的受保护成员

我这里有一个旧代码库,他们使用受保护的成员变量。这是否是一个好主意可以讨论。但是,代码必须用 gcc3 编译得很好。我有一个派生模板类 Bar,它使用类模板 Foo 中的受保护成员 x 像这样

在 cleanup() 的方法声明中,x 做了一些事情

这不适用于 gcc4,尽管它应该适用于 gcc3。当我将其更改为

为什么会这样?

0 投票
4 回答
191 浏览

jquery - 在 jquery 中确定 $(this)

我遇到的一个常见问题是对 $(this) 所指的内容感到困惑。

我经常会尝试给它一些奇怪的风格:

这有时会有所帮助。

但是,我对以下内容感到困惑。我的问题或许可以通过两种方式来回答:

1)在任何给定情况下,是否有一种通用的方法可以“查看” $(this) 所指的内容?也许与萤火虫结合使用?

2)更具体地说,知道下面这个示例中的 $(this) 应该指什么吗?我认为这将是一类 btnSave 的输入,但似乎不是:

0 投票
5 回答
2291 浏览

this - Ada 中有“this”关键字吗?

具体来说,有没有办法让任务获得对自身的引用?

例如:

0 投票
2 回答
6575 浏览

php - 为什么 self::function() 和 $self->variable 或 self::$variable 即使有 $this->function() 和 $this->variable (PHP)?

我对这两个关键字以及在 PHP5 中使用它们的方式感到困惑。我认为“this”用于实例化对象(非静态),而“self”指的是对象本身,而不是它的实例,因此在静态对象中使用。对?

现在,我相信在类的静态方法中调用另一个静态变量/方法的正确用法如下:

确实如此?

但是,以下似乎也是可能的:

然而, $testVar 是静态的。这是为什么?

另外,为什么有时会在 self 前面使用 $ 有时不使用 $,并且对于“this”关键字也有同样的问题?