javascript中如何统计函数执行次数?(详解)
本篇文章给大家带来的内容是关于javascript中如何统计函数执行次数?(详解),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
一、统计函数执行次数
常规的方法可以使用 console.log 输出来肉眼计算有多少个输出
不过在Chrome中内置了一个 console.count 方法,可以统计一个字符串输出的次数。我们可以利用这个来间接地统计函数的执行次数
function someFunction() { console.count('some 已经执行'); } function otherFunction() { console.count('other 已经执行'); } someFunction(); // some 已经执行: 1 someFunction(); // some 已经执行: 2 otherFunction(); // other 已经执行: 1 console.count(); // default: 1 console.count(); // default: 2
不带参数则为 default 值,否则将会输出该字符串的执行次数,观测起来还是挺方便的
当然,除了输出次数之外,还想获取一个纯粹的次数值,可以用装饰器将函数包装一下,内部使用对象存储调用次数即可
var getFunCallTimes = (function() { // 装饰器,在当前函数执行前先执行另一个函数 function decoratorBefore(fn, beforeFn) { return function() { var ret = beforeFn.apply(this, arguments); // 在前一个函数中判断,不需要执行当前函数 if (ret !== false) { fn.apply(this, arguments); } }; } // 执行次数 var funTimes = {}; // 给fun添加装饰器,fun执行前将进行计数累加 return function(fun, funName) { // 存储的key值 funName = funName || fun; // 不重复绑定,有则返回 if (funTimes[funName]) { return funTimes[funName]; } // 绑定 funTimes[funName] = decoratorBefore(fun, function() { // 计数累加 funTimes[funName].callTimes++; console.log('count', funTimes[funName].callTimes); }); // 定义函数的值为计数值(初始化) funTimes[funName].callTimes = 0; return funTimes[funName]; } })(); function someFunction() { } function otherFunction() { } someFunction = getFunCallTimes(someFunction, 'someFunction'); someFunction(); // count 1 someFunction(); // count 2 someFunction(); // count 3 someFunction(); // count 4 console.log(someFunction.callTimes); // 4 otherFunction = getFunCallTimes(otherFunction); otherFunction(); // count 1 console.log(otherFunction.callTimes); // 1 otherFunction(); // count 2 console.log(otherFunction.callTimes); // 2
如何控制函数的调用次数
也可以通过闭包来控制函数的执行次数
function someFunction() { console.log(1); } function otherFunction() { console.log(2); } function setFunCallMaxTimes(fun, times, nextFun) { return function() { if (times-- > 0) { // 执行函数 return fun.apply(this, arguments); } else if (nextFun && typeof nextFun === 'function') { // 执行下一个函数 return nextFun.apply(this, arguments); } }; } var fun = setFunCallMaxTimes(someFunction, 3, otherFunction); fun(); // 1 fun(); // 1 fun(); // 1 fun(); // 2 fun(); // 2
Atas ialah kandungan terperinci javascript中如何统计函数执行次数?(详解). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Panduan untuk Sempadan Jadual dalam HTML. Di sini kita membincangkan pelbagai cara untuk menentukan sempadan jadual dengan contoh Sempadan Jadual dalam HTML.

Ini ialah panduan untuk Nested Table dalam HTML. Di sini kita membincangkan cara membuat jadual dalam jadual bersama-sama dengan contoh masing-masing.

Panduan untuk HTML margin-kiri. Di sini kita membincangkan gambaran keseluruhan ringkas tentang HTML margin-left dan Contoh-contohnya bersama-sama dengan Pelaksanaan Kodnya.

Panduan untuk Susun Atur Jadual HTML. Di sini kita membincangkan Nilai Susun Atur Jadual HTML bersama-sama dengan contoh dan output n perincian.

Panduan untuk Memindahkan Teks dalam HTML. Di sini kita membincangkan pengenalan, cara teg marquee berfungsi dengan sintaks dan contoh untuk dilaksanakan.

Panduan kepada Senarai Tertib HTML. Di sini kami juga membincangkan pengenalan senarai dan jenis Tertib HTML bersama-sama dengan contoh mereka masing-masing

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Panduan untuk Butang onclick HTML. Di sini kita membincangkan pengenalan, kerja, contoh dan onclick Event masing-masing dalam pelbagai acara.
