jsObject.assign()使⽤
Object.assign()应⽤
hey you
Object.assign语法可以⽤来给对象赋值。这个语法在react-redux应⽤中会经常见到。但js原⽣的Object.assign语法和react-redux的扩展运算赋还是有⼀些差异的。
Object.assign的功能是⼀样的
扩展运算符的功能不同,react-redux的扩展运算符功能适⽤的对象类型更多⼀些。
以下主要针对js原⽣的Object.assign进⾏介绍。
看下⾯的例⼦来了解下Object.assign的特点。
例
associate
var newjson = "product" +':'+"15"
pc badconsole.log('------------------')
console.log(Object.assign({},{},newjson))
console.log('------------------')
结果
{ '0': '"',
'1': 'p',
ooc是什么意思'2': 'r',
'3': 'o',urumqi
'4': 'd',
'5': 'u',
ot什么意思'6': 'c',
'7': 't',
'8': ':',
'9': '1',
'10': '5',
'11': '"' }
从上⾯的结果中可以看到,使⽤Object.assign将字符串赋值为对象是,字符串会被当做数组对待了,结果中得到对应数组中的每⼀个值,绝⼤多数时候,你应该不会想这么做。
例
var test = {}
test.digit = "15"
console.log(test)
console.log('------------------')
console.log(Object.assign({},{},test,test))
console.log('------------------')
结果
{ digit: '15' }
dependent{ digit: '15'
从上⾯的结果中可以看到,使⽤Object.assign给对象赋相同的值时,结果中只会得到⼀个值,胖男生适合的发型
现在完成时讲解这个特性⽐较适⽤于需要给对象计数的地⽅
js原⽣的扩展运算符The spread syntax
例
var parts = ['shoulders', 'knees'];
var lyrics = ['head', ...parts, 'and', 'toes'];chilling
console.log(lyrics)
结果
[ 'head', 'shoulders', 'knees', 'and', 'toes' ]
对⼀个对象来使⽤扩展运算符会怎样了?很遗憾,会发⽣语法错误。所以不要把js的原⽣扩展运算符与redux的扩展运算符功能弄混了。参考