"Hızlı, ilişkisiz sarmalayıcılar" oluşturmak için kullanılan Function.call.apply hack'inin üzerine geldiğimde JavaScript Garden göz gezdiriyordum. Yazıyor:JavaScript'te Function.call.apply işlevinin amacı nedir?
Başka bir hile hem aramayı hem de hızlı, ilişkisiz sarmalayıcılar oluşturmak için birlikte uygulamayı kullanmaktır. Function.apply yeterli olacaktır zaman Function.call.apply kullanarak neden rahatsız
function Foo() {} Foo.prototype.method = function(a, b, c) { console.log(this, a, b, c); }; // Create an unbound version of "method" // It takes the parameters: this, arg1, arg2...argN Foo.method = function() { // Result: Foo.prototype.method.call(this, arg1, arg2... argN) Function.call.apply(Foo.prototype.method, arguments); };
Anlamadığım kalmamasıdır. Sonuçta, her ikisi de semantik olarak eşdeğerdir.
[JavaScript Garden] 'a bir bağlantı gönderdim (http://javascriptgarden.info/). Doğrudan gönderiyi içeren bölüme atlamak istiyorsanız, [buraya] tıklayın (http://javascriptgarden.info/#function.arguments). –
tnx, - Bu kesmek biraz hız kazandırdığını ima ettikleri görünüyor .. ama, gerçekten, sadece ** kullanma **. – c69
@Aadit 'Function.call.apply' ve' İşlev.Uygula 'burada aynı olamaz çünkü eski' Function.call 'işlevini yerine getirirken, ikincisi 'Function' yapıcısını uygulamayı dener. Cevabımla ilgili ayrıntılar, ama Ivo Wetzel'in buna cevap vermek için gelmesi durumunda bahse girerim ki çok daha anlaşılır ve anlaşılabilir olurdu. Bu oldukça derin bir şey. Muhtemelen meslektaşlarınızın harcamak istemediğiniz sürece kullanmamanız gereken bir şey olmadığına katılıyorum, bilmiyorum, bir _half saat_ anlamaya çalışıyorum. :) –