import QtQuick 2.5 import QtQuick.Controls 1.4 Item { id : rootObject width : 640 height : 480 Button { anchors.centerIn: parent text : "Crash" onClicked: { var fn = function(a) { console.log("FOO",a) ; } var gn = generator(fn,"BAR"); timer.setTimeout(gn,0); } } function generator(fn) { var args = Array.prototype.slice.call(arguments,1); return function() { //return fn.apply({}, args} works . return fn.apply(this,args); } } Timer { id : timer property var fn function setTimeout(fn,ms){ interval = ms; timer.fn = fn; start(); } onTriggered: { if(typeof fn === 'function') fn(); } } }