ES6中对对象的扩展

  ES6允许直接写入变量和函数作为对象的属性和方法。这样的书写更加简洁。

  ES6允许在对象中只写属性名,不写属性值。这时,属性值等于属性名所代表的变量。

function f(x , y){
  return {x ,y};  
}

f(1,2)// Object {x:1,y:2}

function getPoint(){
  var x=1;
  var y=10;
  return {x,y};  
}

getPoint()//{x:1,y:10}

  js语言定义对象的属性有两种方法。obj.foo=true;obj['a']=123;1直接用标识符作为属性名;2是用表达式作为属性名,这时要将表达式放在方括号内。但是,如果使用字面量方式定义对象,在ES5中只能使用方法一定义属性。

  ES6允许字面量定义对象时用表达式作为对象的属性名,即把表达式放在方括号内。

let propKey='foo';
let obj={
  [propKey]:true,
  ['a'+'bc']:123,    
}

var lastWord='last word';
var a={
  'first word':'hello',
  [lastWord]:'world'    
}

  Object.is用来比较两个值是否严格相等。它与严格比较运算符(===)的行为基本一致。Object.is('foo','foo')//true Object.is({},{})//false 不同之处只有两个:一是+0不等于-0,二是NaN等于自身。Object.assign方法用来将源对象的所有可枚举属性复制到目标对象。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出TypeError错误。

var target={a:1};
var source1={b:2};
var source2={c:3};

Object.assign(target,source1,source2);

target//{a:1,b:2,c:3}

//注意,如果目标对象与源对象有同名属性,或多个源对象有同名属性,
//则后面的属性会覆盖前面的属性。

var target={a:1,b:1};
var source1={b:2,c:2};
var source2={c:3};

Object.assign(target,source1,source2);
target//{a:1,b:2,c:3}

  注意,Object.assign可用于处理数组,但是会将其视为对象。

  Object.assign([1,2,3],[4,5])//[4,5,3]

  Obeject.assign把数组视为属性名为0、1、2的对象,因此目标数组的0号属性4覆盖了原数组的0号属性1.

  

  对象的扩展运算符

  Rest参数用于从一个对象取值,相当于将所有可遍历但尚未被读取的属性,分配到指定的对象上。所有的键及其值都会复制到新对象上。rest参数的复制是浅复制,即如果一个键的值是复合类型的值,那么rest参数复制的是这个值的引用,而不是这个值的副本。

  Rest参数不会复制继承自原型对象的属性。

 

  扩展运算符用于取出参数对象的所有可遍历属性,复制到当前对象中。这等同于使用Object.assign方法。

  扩展运算符可用于合并两个对象。let ab={...a,...b};

转载于:https://www.cnblogs.com/wlxll/p/9329434.html

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数学优化器加速函数(MOA)和数学优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校学生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③学习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值