小编Kor*_*lum的帖子

jQuery双对象构造函数 - 例如$($(this))

假设您有以下代码:

function name() {
    $(this).css('background', 'red');
}

$('selector1').click(name);

$('selector2').click(function () {
    name.call($(this).parent());
});
Run Code Online (Sandbox Code Playgroud)

现在,当通过单击'selector1'调用该函数时,this是一个HTML对象和$(this)一个jQuery对象,但如果通过单击'selector2'调用该函数this已经是一个jQuery对象,那么它是$(this)什么?

我知道我可以做这样的事情name.call($(this).parent()[0]);得到一个HTML对象,但我的问题是,当你做这样的事情会发生什么$($(this))$($('selector'))?结果是什么,最显着的是,使用这种结构有什么危害?

javascript jquery

4
推荐指数
1
解决办法
333
查看次数

嵌套函数和JavaScript中的"this"关键字

" this关键字始终引用包含函数的方法的对象."

很棒,听起来很简单,但这就是我想知道的......

例如:

function func1() {

  function func2() {
    alert(this == window); // true
  }

  func2();

  alert(this == window); // true
}

func1.func3 = function () {

  alert(this == window); // false
  alert(this == func1); // true

};

func1();
func1.func3();
Run Code Online (Sandbox Code Playgroud)

现在,因为func1实际上是global(window)对象(分配给全局对象的属性func1的函数对象)的方法,所以内部引用全局对象是有道理的,并且因为它是函数对象的方法,所以它是有意义的该内指的功能对象.thisfunc1func3func1thisfunc3func1

困扰我的是func2.我知道this嵌套函数内部也应该引用全局对象,但我不确定为什么因为func2它不是全局对象的方法.据我所知(这是我可能完全错误的部分)func2是一个func1调用(激活/变量)对象的方法.现在,如果我对此是对的(并且我不确定我是)那么不应该this在内部func2 …

javascript this

4
推荐指数
1
解决办法
4214
查看次数

标签 统计

javascript ×2

jquery ×1

this ×1