gpt4 book ai didi

javascript - 为什么 jQuery 代码不使用方法原型(prototype)?

转载 作者:行者123 更新时间:2023-11-29 18:25:09 24 4
gpt4 key购买 nike

<分区>

为什么 jquery 代码 ( https://github.com/jquery/jquery/blob/master/src/callbacks.js ) 不使用方法原型(prototype)?

我问这个是因为 experts suggest出于性能原因对方法使用原型(prototype)(因为函数只创建一次)。

来自 jquery 代码的代码片段,

self = {
// Add a callback or a collection of callbacks to the list
add: function() {
if ( list ) {
// First, we save the current length
var start = list.length;
(function add( args ) {
jQuery.each( args, function( _, arg ) {
var type = jQuery.type( arg );
if ( type === "function" ) {
if ( !options.unique || !self.has( arg ) ) {
list.push( arg );
}
} else if ( arg && arg.length && type !== "string" ) {
// Inspect recursively
add( arg );
}
});
})( arguments );
// Do we need to add the callbacks to the
// current firing batch?
if ( firing ) {
firingLength = list.length;
// With memory, if we're not firing then
// we should call right away
} else if ( memory ) {
firingStart = start;
fire( memory );
}
}
return this;
},
// Remove a callback from the list
remove: function() {
if ( list ) {
jQuery.each( arguments, function( _, arg ) {
var index;
while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
list.splice( index, 1 );
// Handle firing indexes
if ( firing ) {
if ( index <= firingLength ) {
firingLength--;
}
if ( index <= firingIndex ) {
firingIndex--;
}
}
}
});
}
return this;
},

我的问题是,为什么所有方法都不是成为自身对象原型(prototype)的单独对象的一部分?

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