javascript – 在JavaScript中的returnTrue和returnFalse函数

我不禁要注意,在jQuery的源代码中有两个看似无用的功能(对于v1.9.1,它是第2702行和第2706行):
function returnTrue() {
    return true;
}

function returnFalse() {
    return false;
}

这两者在jQuery中经常被称为.有没有理由为什么他们不会用布尔值true或false代替函数调用

解决方法

它是这样使用的:
stopImmediatePropagation: function() {
    this.isImmediatePropagationStopped = returnTrue;
    this.stopPropagation();
}

这里是ImmediatePropagationStopped是一种查询方法.使用像这个event.isImmediatePropagationStopped()

当然,您可以定义一个实例方法,如:

event.prototyoe.isImmediatePropagationStopped = function() { return this._isImmediatePropagationStopped };

stopImmediatePropagation: function() {
    this._isImmediatePropagationStopped = true; //or false at other place.
    this.stopPropagation();
}

但是你必须引入一个新的实例属性_isImmediatePropagationStopped来存储状态.

通过这个技巧,您可以在这里切断一些实例属性以保持true / false状态,如_isImmediatePropagationStopped,_isDefaultPrevented等.

所以在我看来,这只是一个代码风格的问题,不是对或错.

PS:事件的查询方法,如isDefaultPrevented,isPropagationStopped,isImmediatePropagationStopped在DOM事件级别3中定义.

规格:http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/events.html#Events-Event-isImmediatePropagationStopped

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...