gpt4 book ai didi

JavaScript:将 child 的原型(prototype)分配给自己?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:08 24 4
gpt4 key购买 nike

我对遇到的一行 JavaScript 代码感到有点困惑,我想了解它的用途:

(function ($, window) {

var example;

example = function (a, b, c) {
return new example.fn.init(a, b, C);
};

example.fn = example.prototype = {
init: function (a, b, c) {
this.a= a;
this.b= b;
this.c= c;
}
};

example.fn.init.prototype = example.fn; //What does this line accomplish?

$.example = example;


}(window.jQuery, window));

据我了解,所讨论的行是将子对象的原型(prototype)分配给自身,这实际上是基本示例对象的原型(prototype)……为什么要这样做?

最佳答案

您问题中的代码示例实现了一个多用途函数/对象,就像 jQuery 对其 jQuery(通常别名为 $)对象所做的一样。

example() 函数创建的对象实际上是由 example.fn.init() 构造函数实例化的。将 example 的原型(prototype)分配给 example.fn.init 确保由 example 公开的成员也由 实例化的对象公开初始化()

jQuery 源代码的相关部分是:

// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context, rootjQuery );
}

jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
// Actual implementation of the jQuery() function...
}
// Other jQuery.fn methods...
};

// Give the init function the jQuery prototype for later instantiation
jQuery.fn.init.prototype = jQuery.fn;

关于JavaScript:将 child 的原型(prototype)分配给自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12061015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com