2016-03-24 20 views
0

İşte benim senaryo:Javascript'teki yeni ve doğrudan atama arasındaki fark nedir?

"babloo" ve burada "bablaa" arasındaki fark nedir
> var babloo = new Number(12) 

[Number: 12] 

> var bablaa = 12 

12 

> babloo. 

babloo.__defineGetter__  babloo.__defineSetter__  babloo.__lookupGetter__  babloo.__lookupSetter__  babloo.__proto__    babloo.constructor   babloo.hasOwnProperty 
babloo.isPrototypeOf   babloo.propertyIsEnumerable babloo.toLocaleString  babloo.toString    babloo.valueOf    
babloo.toExponential   babloo.toFixed    babloo.toPrecision   

> bablaa. 

bablaa.__defineGetter__  bablaa.__defineSetter__  bablaa.__lookupGetter__  bablaa.__lookupSetter__  bablaa.__proto__    bablaa.constructor   bablaa.hasOwnProperty 
bablaa.isPrototypeOf   bablaa.propertyIsEnumerable bablaa.toLocaleString  bablaa.toString    bablaa.valueOf    
bablaa.toExponential   bablaa.toFixed    bablaa.toPrecision   

> typeof babloo 

'object' 
> typeof bablaa 

'number' 

? Kullanımlarının farklı ele alınması gereken bir senaryo var mı?

cevap

1

göz önünde bulundurun: Bu açıkça PrimitiveValue özelliklerinin araştırılması 12

ayarlanır olan Number constructor kullanılarak yaratılır

var babloo = new Number(12); //typeof babloo is "object" 

düşünün:

var bablaa = 12 //typeof bablaa is "number" 

Bu değer 12

sahip ilkel veri türü numarasını tutan

Ayrıca, aynı zamanda Number constructor kullanarak ancak bir sarıcı olarak örtülü olarak Number kullanarak cted.

çağrı

Object.getPrototypeOf(babloo) //Number 

ve

Object.getPrototypeOf(bablaa)  //Number 

hem Prototpe olarak Number geri dönecektir.

İlgili konular