Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用';这';在一个简单的jquery函数中工作?_Javascript_Jquery_Jquery Plugins - Fatal编程技术网

Javascript 如何使用';这';在一个简单的jquery函数中工作?

Javascript 如何使用';这';在一个简单的jquery函数中工作?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,我无法理解此代码: $.functionone = function(){ function setOptions(newOptions){ ... } this.setOptions = setOptions; } 在“this.setOptions”中添加“this”的目的是什么?我知道它引用了函数setOptions,但是在那里添加“this”会使函数被调用吗?我知道这是指DOM元素,但是在这个特定场景中使用它有什么意义呢。谢谢。代码创建了一个函数,并将其添加为D

我无法理解此代码:

$.functionone = function(){
  function setOptions(newOptions){
      ...
  }
  this.setOptions = setOptions;
}

在“this.setOptions”中添加“this”的目的是什么?我知道它引用了函数setOptions,但是在那里添加“this”会使函数被调用吗?我知道这是指DOM元素,但是在这个特定场景中使用它有什么意义呢。谢谢。

代码创建了一个函数,并将其添加为DOM元素的“setOptions”属性


据推测,代码的其他部分将知道在DOM元素上查找并执行“setOptions”函数。

指调用该函数的特定DOM元素

以下一行:

this.setOptions = setOptions;
表示将函数“setOptions”分配给DOM元素的“setOptions”属性。

这将从
functionone
的范围中公开函数,使其成为
$
对象的属性

例如:

$.functionone = function(){

  function setOptions(newOptions){
    //...
  }
  this.setOptions = setOptions;
};

typeof $.setOptions; // "undefined", it doesn't exist
$.functionone();
typeof $.setOptions; // "function"
JavaScript上的
这个
值是在进行函数调用时隐式设置的

如果函数被绑定为对象的属性(如
$.functionone
),则
值将引用基本对象(
$

在国际海事组织,这不是很有用,它相当于:

$.functionone = function(){
  this.setOptions = function (newOptions) {
    //...
  };
};
$.setOptions = function (newOptions) {
  //..
};
在最后,当您调用
functionone
时,它相当于:

$.functionone = function(){
  this.setOptions = function (newOptions) {
    //...
  };
};
$.setOptions = function (newOptions) {
  //..
};
区别在于函数没有命名,这对调试很有用

扩展
jQuery.fn
对象时,在jQuery插件上使用
this
值更为常见,在这种情况下,
this
值指的是包含匹配元素的jQuery对象,而不是jQuery构造函数本身