[] .slice или Array.prototype.slice

Я встречал оба способа применения прототипов массива к нативному объекту:

arr = Array.prototype.slice.call(obj);
arr = [].slice.call(obj);

Подобным образом получение истинного типа нативного массива -подобный объект:

type = Object.prototype.toString.call(obj);
type = {}.toString.call(obj);

Простой тест:

function fn() {
    console.log(
        Array.prototype.slice.call(arguments),
        [].slice.call(arguments),
        Object.prototype.toString.call(arguments), 
        {}.toString.call(arguments)
    );
}

fn(0,1);

Fiddle: http://jsfiddle.net/PhdmN/

Мне они кажутся идентичными; первый синтаксис используется чаще, но второй определенно короче. Есть ли недостатки при использовании более короткого синтаксиса?

17
задан David Hellsing 25 January 2012 в 16:49
поделиться