2017-01-30 9 views
1

は、私は、ソースコードvuejs読んでいますと、次の2行のコードで混乱してしまった:次のスニペットでVueのuse.jsでは `args.unshift(this)`は何をしますか?

const args = toArray(arguments, 1) 
args.unshift(this) 

、これを行うなぜわざわざ?

/* @flow */ 

import { toArray } from '../util/index' 

export function initUse (Vue: GlobalAPI) { 
    Vue.use = function (plugin: Function | Object) { 
    /* istanbul ignore if */ 
    if (plugin.installed) { 
     return 
    } 
    // additional parameters 
    const args = toArray(arguments, 1) 
    args.unshift(this) 
    if (typeof plugin.install === 'function') { 
     plugin.install.apply(plugin, args) 
    } else { 
     plugin.apply(null, args) 
    } 
    plugin.installed = true 
    return this 
    } 
} 
+1

を助け

希望。実際の最初の議論は役に立たないと思います。なぜそれを記録し、参照してください? –

答えて

0

あなたがVueインスタンスの内側にあるので、問題の行は、これが最も可能性の高い現在のVueのインスタンスを参照しますVue.useに定義された関数です。

最初の行を理解するには、toArrayのソースを参照する必要があります。引数をとり、それらから配列を返す可能性があります。最初の引数(toArray(arguments, 1)の1は私にこの印象を与えますが、その機能のソースを参照してください)。

しかし、その後の呼び出しargs.unshift(this)は、それがその後、plugin関数の引数を提供するために使用される引数arrayの最初の要素としてVueインスタンスを置きます来ます。彼は最初の引数を捨てるとthis` `に置き換えることです;-)

セブ

関連する問題