select2背后的Javascript功能是什么
要将一个普通的Html select转换为一个Html select,文档中说只需在普通的Html select上调用select2(),如下所示select2背后的Javascript功能是什么,javascript,jquery,prototype,jquery-select2,jquery-select2-4,Javascript,Jquery,Prototype,Jquery Select2,Jquery Select2 4,要将一个普通的Html select转换为一个Html select,文档中说只需在普通的Html select上调用select2(),如下所示 $(document).ready(function() { $('.js-example-basic-single').select2(); }); 当我尝试这个方法时,我还导入了通过npm安装的select2模块 import select2 from 'select2'; 允许向现有对象添加新函数(在本例中为.select2())的
$(document).ready(function() {
$('.js-example-basic-single').select2();
});
当我尝试这个方法时,我还导入了通过npm安装的select2模块
import select2 from 'select2';
允许向现有对象添加新函数(在本例中为.select2())的Javascript特性/概念/技术的名称是什么
更新我忘了提到我正在使用jquery,这正是BJRINT所学到的。看来这是一个jquery+select2的东西。这叫做jquery插件 下面是JQuery的一个片段
有一件事你误解了。您说过要将一个普通的Html select转换为select2,文档中说只需像这样对普通的Html select调用select2(),,但这不是一个普通的Html select元素 使用语法$()时,使用jQuery访问“普通”html元素 正如其他人指出的,Select2能够在这里添加一个方法,因为jQuery有一个可扩展的插件体系结构,允许向主jQuery对象(在您的例子中是$())添加新的行为(方法) 允许向现有对象添加新函数(在本例中为.select2())的Javascript特性/概念/技术的名称是什么 JavaScript具有原型继承,这意味着对象可以从其他对象继承方法。现在,您可以随时向任何对象添加属性,这实际上不是一个特性,而是底层语言设计的结果。在其他语言中,它们被称为扩展函数 现在,对于同样适用的HTML元素:它们继承了
元素
类,您可以轻松地向其原型添加方法:
Element.prototype.method = function() {
console.log(this);
}
document.body.method();
在您的例子中,您没有直接的HTML元素,而是一个jquery实例对象,它环绕着原生元素对象。然而,继承的基本概念也适用于此,这意味着向$.fn
添加方法会反映到所有jQuery实例中。这就是插件所做的
允许向现有对象添加新函数的Javascript特性的名称是什么
简短答复:
原型
原型是JavaScript对象相互继承特性的机制。prototype属性可用于向现有构造函数添加方法
有关JavaScript原型的更多详细信息,请参阅上的MDN文档
详细答复:
- select2是一个jQuery插件。如果您检查它的,您会发现它扩展了
,使用了一个名为$.fn
的新函数:select2
- 如果检查jQuery,您会发现
是jQuery.fn
的别名:jQuery.prototype
函数()jQuery()
- 而且,在jQuery的源代码中,您可以发现“$”是jQuery对象的别名:
所以,基本上。。。
是jQuery()函数的别名$
返回jQuery对象$('.js example basic single')
- 您的插件使用新方法
select2()
$(文档).ready(函数(){
$('.js示例基本倍数')。选择2();
});代码>
阿拉巴马州
...
怀俄明州
了解javascript prototype.monkey-patching?但不仅仅是JavaScript允许这样做,我看到您正在使用JQuery。在本例中,它是lib的创建者制作的名为插件的基本特性。看看Jquery有一个问题,然后选择2,查看下面我的答案。
const prototype = { };
const instance = Object.create(prototype);
console.log(instance.method); // does not exist yet
prototype.method = function() { };
instance.method(); // exists now
Element.prototype.method = function() {
console.log(this);
}
document.body.method();
$.fn.select2 = function (options) {..}
jQuery.fn = jQuery.prototype = { ... }
window.jQuery = window.$ = jQuery;