我正在学习Bootstrap的javascript代码,这里有一个例子,我想知道他们使用noConflict的方式,这里是一段代码:
var old = $.fn.tab;
$.fn.tab = function () {
// do something
}
$.fn.tab.noConflict = function () {
$.fn.tab = old // set $.fn.tab to undefined
return this
}
var s = $.fn.tab.noConflict();
console.log(s, $.fn.tab) // do something
// undefined
我想知道为什么return this
在设置为undefined
时仍能获得函数的价值,这是引用/值的问题吗?
寻求帮助。
答案 0 :(得分:0)
$.fn.tab
设置为old
时, $.fn.tab
尚未定义(如果不存在)
一旦我们调用方法noConflict
,$.fn.tab
将被设置为$.fn.tab
预定义(或未定义),我们定义的$.fn.tab
将返回到我们定义的变量(这里是s
)