2016-12-14 42 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我正要对此发表评论。 :)无论如何,让我们坚持这里的规则。 –

相关问题