ext.apply使用技巧,让你的代码更简洁高效!

吉云

今儿个咱来聊聊*这个小东西,一开始我还真没搞明白这玩意儿到底咋用,后来琢磨琢磨,发现还挺有意思。

初识 *

一开始看到这个,我心里还犯嘀咕:这啥呀?跟平时用的那些个方法好像不太一样。然后我就去翻翻那些资料,发现这东西的主要作用就是把一个对象里的“家当”复制到另一个对象里去。

ext.apply使用技巧,让你的代码更简洁高效!

实践出真知

光看字面意思还是有点懵,我就想着,干脆自己动手试试!

我先弄两个对象,一个叫obj1,一个叫obj2


var obj1 = {

ext.apply使用技巧,让你的代码更简洁高效!

name: '张三',

age: 30

var obj2 = {

job: '程序员'

ext.apply使用技巧,让你的代码更简洁高效!

然后,我用,把obj2里的东西都“搬”到obj1里:


*(obj1, obj2);

ext.apply使用技巧,让你的代码更简洁高效!

弄完之后,我再看看obj1,发现它现在长这样:



ext.apply使用技巧,让你的代码更简洁高效!

name: '张三',

age: 30,

job: '程序员'

ext.apply使用技巧,让你的代码更简洁高效!

obj2里的job属性还真就跑到obj1里去!

更进一步

后来我又发现,还能再加一个“家伙事儿”——defaults。这意思是啥?就是说,如果obj1里头已经有某个属性,obj2里也有,那咱就听obj1的,不让obj2的覆盖掉。但如果obj1里没有,那就把obj2里的拿过来用。

举个栗子:


ext.apply使用技巧,让你的代码更简洁高效!

var obj1 = {

name: '张三',

age: 30,

job: '搬砖的'

var obj2 = {

ext.apply使用技巧,让你的代码更简洁高效!

job: '程序员',

address:'xx地方'

var defaults = {

sex:'男'

ext.apply使用技巧,让你的代码更简洁高效!

*(obj1, obj2, defaults);

我一开始obj1有job属性,obj2也有job,但是这时候我用defaults默认值,执行完之后我看下结果:


ext.apply使用技巧,让你的代码更简洁高效!

name: '张三',

age: 30,

job: '程序员',

address:'xx地方',

sex:'男'

ext.apply使用技巧,让你的代码更简洁高效!

这样obj2的job:'程序员'就会覆盖obj1的job,如果obj2没有address属性,但defaults有sex:'男',也会放进obj1对象里面。

总结

这么一折腾,我算是明白,这东西,就是个“搬运工”,能把一个对象里的东西搬到另一个对象里,而且还能根据你的需要,选择要不要覆盖。这在咱们平时写代码的时候,还是挺有用的,能省不少事儿!

ext.apply使用技巧,让你的代码更简洁高效!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]