gpt4 book ai didi

javascript - 哪种形式的初始化更好?

转载 作者:行者123 更新时间:2023-11-29 14:57:22 27 4
gpt4 key购买 nike

当我第一次开始编写自己的代码时,直到后来我才理解 jQuery 的“增强型”init 构造函数,因此我坚持使用不同的方式来构造我的对象。我想知道我是应该保留我的旧方法还是开始使用我自己的“增强型”init 构造函数。


我的构造函数:

var $ = function(selector,context,createObj) {
if(createObj) {
// actually initiating object
} else {
return new $(selector,context,true);
}
};

jQuery:

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

实际初始化:

init: function( selector, context, rootjQuery ) {
// some code
}

改变原型(prototype)(jQuery.prototype.init.prototype=jQuery.prototype):

jQuery.fn.init.prototype = jQuery.fn;

最佳答案

jQuery's constructor pattern是历史悠久的不良做法 - 或者至少不必要地复杂。如果你想要一个在没有 new 的情况下也能正常工作的构造函数(如果应用错误),请使用

function $(selector, context) {
if (this instanceof $) {
// actually initiating object
} else {
return new $(selector, context);
}
}

关于javascript - 哪种形式的初始化更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591434/

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