Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 Twitter引导JS中$.fn.foo.Constructor=foo的用途是什么_Javascript_Jquery - Fatal编程技术网

Javascript Twitter引导JS中$.fn.foo.Constructor=foo的用途是什么

Javascript Twitter引导JS中$.fn.foo.Constructor=foo的用途是什么,javascript,jquery,Javascript,Jquery,所有用于Twitter引导的jQuery插件都遵循相同的基本模式,即定义一个控制插件行为的类。接近尾声时,他们会这样做: $.fn.alert.Constructor = Alert 这是干什么的 我假设这是定义一个原型构造函数,但它们使用大写的C。这里大小写不重要吗?除此之外,我真的不明白这个插件在做什么,以及它是如何被插件使用的 例如,以下是警报插件: 这里没有魔法,构造函数(大C)作为属性没有特殊意义。这只是惯例 基本上,他们使用类结构来定义功能 var Alert = function

所有用于Twitter引导的jQuery插件都遵循相同的基本模式,即定义一个控制插件行为的类。接近尾声时,他们会这样做:

$.fn.alert.Constructor = Alert
这是干什么的

我假设这是定义一个原型构造函数,但它们使用大写的C。这里大小写不重要吗?除此之外,我真的不明白这个插件在做什么,以及它是如何被插件使用的

例如,以下是警报插件:
这里没有魔法,
构造函数(大C)作为属性没有特殊意义。这只是惯例

基本上,他们使用类结构来定义功能

var Alert = function() {};
Alert.prototype.foo = function() {};
并通过一个非类接口公开它

$('#blurf').alert();
因此,这只是一个有用的插件约定。每个jQuery插件在
$.fn
对象上定义自己的主要方法,该对象可以通过闭包访问它所需的构造函数。但是构造函数本身对闭包是私有的。将其分配给
$.fn.myplugin.Constructor
只会使其他代码可以访问该构造函数,从而允许您在必要时进行高级控制

var myAlert = new $.fn.alert.Constructor('Hello World'); // or something
现在你可以这样做:

$.fn.alert.Alert = Alert;
这在主观上是丑陋和多余的。现在,您必须翻译或猜测导致构造函数的属性名。如果您说每个插件都是用一个类实现的,并且每个类构造函数都可以在
$.fn.myplugin.constructor
中找到,那么您就有了一个一致的接口来访问每个插件后面的类

所以再说一遍,这只是惯例,没有什么特别之处