2016-12-14 61 views
-1

我有一個功能看起來像這樣。爲什麼分配的變量類型是數字?

var myfuncsettings; 
var myfunc = function(settings) { 
    myfuncsettings = settings | {}; 
    myfuncsettings['prop'] = 'test'; 
}; 

我得到了一個錯誤。

Uncaught TypeError: Cannot create property 'message' on number '0'(…) 

我安慰了。

var myfuncsettings; 
var myfunc = function(settings) { 
    console.log('typeof settings: ' + (typeof settings)); 
    myfuncsettings = settings | {}; 
    console.log('typeof myfuncsettings: ' + (typeof myfuncsettings)); 
    myfuncsettings['message'] = 'test'; 
}; 

我得到了。

typeof settings: object 
typeof myfuncsettings: number 

有誰能告訴我我做錯了什麼?

+1

我瞭解下投票。但這個問題不值得結束。 –

+2

我不認爲這是一個'印刷錯誤'。單一管道是完全有效的,它只是做一些不同於OP想要的東西。 – musefan

+1

我不明白downvotes。你已經很好地解釋了你的問題 – musefan

回答

3

發現管道運營商的錯誤用法。你必須像下面一樣使用它來滿足你的要求。

myfuncsettings = settings || {}; 

如果使用|,那麼它會做操作數之間的按位或操作。

+1

@PraveenKumar我正要對此發表評論。 :)無論如何,讓我們堅持這裏的規則。 –