var shell = function (method) {
window[method].apply(null, Array.prototype.slice.call(arguments, 1));
};
shell('alert', 'monkey!');
cevap
alertt.apply problemdir. Uyarı, dilinin bir parçası değil, bu yüzden bir işlev bile olmayabilir. uygulama bağımlı'dir.
Right - IE, API'leri pencere üzerinde ve DOM öğelerinde Javascript'e maruz bırakır, ancak pozlama sınırlıdır ve genellikle "gerçek" Javascript bileşenleriymiş gibi davranamazsınız. – Pointy
+1 galambalazlarla aynı fikirdedir. – Krunal
İyi bir nokta, ancak sonra bu çalışma yapılmamalıdır: var shell = işlev {yöntem} { var fn = window [method]; fn.apply = Function.prototype.apply; fn.apply (null, Array.prototype.slice.call (argümanlar, 1)); }; kabuk ('uyarı', 'maymun!'); – shawndumas
IE kötülükten dolayı – Jimmy
Bu sorunun yanıtına bakın: http://stackoverflow.com/questions/120804/difference-between-array-slice-and-array-slice –
no, Array.prototype.slice.call (argümanlar, 1) tamam. – galambalazs