sudo apt-get install libgoo-canvas-perl
Reference: How To Fix Disabled Edit Option In Shutter in Linux Mint
sudo apt-get install libgoo-canvas-perl
Reference: How To Fix Disabled Edit Option In Shutter in Linux Mint
<form> <p> <button id="f1">Invoke with function</button> </p> <p> <button id="f2">Invoke with lambda</button </p> <div id="output"></div> </form> <script> 'use strict'; (function () { let f1 = document.querySelector('#f1'), f2 = document.querySelector('#f2'), output = document.querySelector('#output'); function appendResult(message) { let log = document.createElement('pre'); log.appendChild(document.createTextNode(message)); output.appendChild(log); } // define with function, reference 'this' to button element f1.onclick = function () { appendResult('Button [Invoke with function] clicked!'); appendResult('This is: ' + JSON.stringify(this) + ' [' + this.constructor.name + ']'); console.log(this); return false; }; // define with lambda, reference 'this' to {name: 'Bruce'} object f2.onclick = () => { appendResult('Button [Invoke with lambda] clicked!'); appendResult('This is: ' + JSON.stringify(this) + ' [' + this.constructor.name + ']'); console.log(this); return false; }; }).call({name: 'Bruce'}) </script>Result: Reference: No binding of this
To prevent multi-execution from caller in short time, use debounce for single execution.
var debounce = function (func, threshold, execAsap) { var timeout; return function debounced () { var obj = this, args = arguments; function delayed () { if (!execAsap) func.apply(obj, args); timeout = null; }; if (timeout) clearTimeout(timeout); else if (execAsap) func.apply(obj, args); timeout = setTimeout(delayed, threshold || 100); }; }