Teste this Javascript

Benchmark created on


Description

Teste se tem diferença entre armazenar o this em uma variável ou não.

Preparation HTML

<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<input id="testeVar" value="a1b2c3">
<input id="testeVarOut" value="a1b2c3">
<input id="testeVarOutNoSet" value="a1b2c3">
<input id="testeVarOutPreSet" value="a1b2c3">
<input id="testeNoVar" value="a1b2c3">

Setup

$(function(){
	$(document).on('testTriggerVar', '#testeVar', function (e) {
    var _vThis = this;
    if (/\D/g.test(_vThis.value)) {
        _vThis.value = _vThis.value.replace(/\D/g, '');
    	}
	});
	
	var _vThiO;
	$(document).on('testTriggerVarOut', '#testeVarOut', function (e) {
	_vThiO = this;
    if (/\D/g.test(_vThiO.value)) {
        _vThiO.value = _vThiO.value.replace(/\D/g, '');
    	}
	});
	
	var _vThNs;
	$(document).on('testTriggerVarOutNoSet', '#testeVarOutNoSet', function (e) {
	if(!_vThNs){ _vThNs= this; }
    if (/\D/g.test(_vThNs.value)) {
        _vThNs.value = _vThNs.value.replace(/\D/g, '');
    	}
	});
	
	var _vThPs = document.getElementById('testeVarOutPreSet');
	$(document).on('testTriggerVarOutPreSet', '#testeVarOutPreSet', function (e) {
    if (/\D/g.test(_vThPs.value)) {
        _vThPs.value = _vThPs.value.replace(/\D/g, '');
    	}
	});
	
	$(document).on('testTriggerNoVar', '#testeNoVar', function (e) {
    if (/\D/g.test(this.value)) {
        this.value = this.value.replace(/\D/g, '');
    	}
	});
});

Test runner

Ready to run.

Testing in
TestOps/sec
Com variável
$(document).trigger('testTriggerVar');
ready
Com variável Fora
$(document).trigger('testTriggerVarOut');
ready
Com variável Fora (Não setada novamente)
$(document).trigger('testTriggerVarOutNoSet');
ready
Com variável Pré-Setada
$(document).trigger('testTriggerVarOutPreSet');
ready
Sem variável
$(document).trigger('testTriggerNoVar');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.