-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtrick.js
29 lines (23 loc) · 852 Bytes
/
trick.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
let obj = {
method: function(p1, p2, p3) { console.log("method:", arguments) }
}
let str = "method('p1', 'p2', 'p3');"
let match = str.match(/^\s*(\S+)\((.*)\);\s*$/);
let func = match[1]
let parameters = match[2].split(',');
for (let i = 0; i < parameters.length; ++i) {
// clean up param begninning
parameters[i] = parameters[i].replace(/^\s*['"]?/,'');
// clean up param end
parameters[i] = parameters[i].replace(/['"]?\s*$/,'');
}
obj[func](parameters); // sends parameters as array
// method: [Arguments] { '0': [ 'p1', 'p2', 'p3' ] }
obj[func].apply(this, parameters); // sends parameters as individual values
// method: [Arguments] { '0': 'p1', '1': 'p2', '2': 'p3' }
// Clearing the console screen without calling functions
Object.defineProperty(window, 'clear', { // or `cls` if you want
get() {
console.clear();
}
});