$(this)与this的区别

本文详细解释了在jQuery中$(this)与this的区别,包括它们分别返回的对象类型及如何正确地在jQuery中使用this调用方法或属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢?

       首先来看看JQuery中的  $()  这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象。那么,当你在网页中alert($('#id'));时,会弹出一个[object Object ],这个object对象,也就是jquery对象了。

       那么,我们再回过头来说$(this),这个this是什么呢?假设我们有如下的代码:

$("#desktop a img").each(function(index){

          alert($(this));

          alert(this);

}

那么,这时候可以看出来:

alert($(this));  弹出的结果是[object Object ]

alert(this);        弹出来的是[object HTMLImageElement]

也就是说,后者返回的是一个html对象(本例中是遍历HTML的img对象,所以为 HTMLImageElement)。很多人在使用jquery的时候,经常this.attr('src');   这时会报错“对象不支持此属性或方法”,这又是为什么呢?其实看明白上面的例子,就知道错在哪里了:

很简单,this操作的是HTML对象,那么,HTML对象中怎么会有val()方法了,所以,在使用中,我们不能直接用this来直接调用jquery的方法或者属性。

 

转载于:https://www.cnblogs.com/ranyonsue/p/5761396.html

### 关于 `$this` 变量的使用说明 在 PHP 中,`$this` 是一个特殊的伪变量,用于指向当前对象实例。它通常在类的方法内部使用,以便访问该对象的属性和方法[^3]。 #### 基本概念 - 当在一个类的方法中使用 `$this->property` 或 `$this->method()` 时,表示正在访问当前对象的属性或方法。 - `$this` 的作用域仅限于类的内部,在静态上下文中无法使用 `$this`,因为静态方法不属于任何特定的对象实例[^4]。 #### 示例代码解析 以下是 `$this` 在实际中的应用: ```php <?php class MyClass { private $name; public function __construct($name) { $this->name = $name; // 使用$this设置私有属性$name } public function getName() { return $this->name; // 使用$this获取私有属性$name } public function printName() { echo $this->getName(); // 调用当前对象的getName方法并输出结果 } } $myClass = new MyClass("I Like PHP"); $myClass->printName(); ?> ``` 运行上述代码的结果为 `I Like PHP`[^2]。 #### 特殊情况下的 `$this` - **动态绑定**:如果通过闭包或其他方式传递了一个对象,则可以通过 `$this` 访问原始对象的内容[^1]。 ```php <?php class Example { public $value = 'Original'; public function getValue() { return $this->value; } } $obj = new Example(); // 动态绑定示例 $closure = function () { return $this->getValue(); // 此处$this仍然指向Example类的实例 }; echo $closure->bindTo($obj, Example)->(); // 输出 Original ?> ``` #### 错误案例分析 尝试直接赋值给 `$this` 将引发错误,例如以下代码会抛出致命错误: ```php $this = 'text'; // Error: Cannot re-assign $this ``` 然而,可以利用可变变量实现类似效果: ```php $name = 'this'; $$name = 'text'; // 设置$this为'text' echo $$name; // 输出 text ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值