javaScript-关于new的笔记

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>new实现</title>
</head>
<body>
<script type="text/javascript">
/*
new操作符的5个步骤:
1.开辟空间,定义对象
2.赋值属性给对象
3.将对象和this关联
4.对象和原型关联
5.返回这个对象
*/
//用 new 操作符或文字记号创建一个自定义对象都是简单的,也是符合逻辑的.但它最大的缺点就是结果不可复用.也不能很容易的用不同的版本初始化创建对象
function Person(name,age){
this.name =name;
this.age=age;
//return null;
}
var p1=new Person('Bob',18);
console.log(p1);


function myNew(f){
if(typeof f()==="object" && f()!==null){
return function(){
return f();
};
}
//var o={};
//o.__proto__=f.prototype;
//不能写在外面
//写在外面p3_1与p3_2会都为Person {name: "QUEEN", age: 19}
return function(){
//var o={};
//var o=new Object();
//o.__proto__=f.prototype;
var o={
"__proto__":f.prototype
};
f.apply(o, arguments);
return o;
}
}
var p2=myNew(Person)("Job",19);
console.log(p2);
var p3=myNew(Person);
var p3_1=p3('KING',20);
var p3_2=p3('QUEEN',19);
console.log(p3_1);
console.log(p3_2);


function Cat(height,weight){
this.height=height;
this.weight=weight;
}
Cat.prototype.call=function(){
console.log('weight=  '+this.weight);
}
var c=myNew(Cat)('30','1kg');
c.call();
console.log(c);


function Dog(){}
var d=myNew(Dog)();
console.log(d);


</script>
</body>
</html>
基于python实现的粒子群的VRP(车辆配送路径规划)问题建模求解+源码+项目文档+算法解析,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。 算法设计的关键在于如何向表现较好的个体学习,标准粒子群算法引入惯性因子w、自我认知因子c1、社会认知因子c2分别作为自身、当代最优解和历史最优解的权重,指导粒子速度和位置的更新,这在求解函数极值问题时比较容易实现,而在VRP问题上,速度位置的更新则难以直接采用加权的方式进行,一个常见的方法是采用基于遗传算法交叉算子的混合型粒子群算法进行求解,这里采用顺序交叉算子,对惯性因子w、自我认知因子c1、社会认知因子c2则以w/(w+c1+c2),c1/(w+c1+c2),c2/(w+c1+c2)的概率接受粒子本身、当前最优解、全局最优解交叉的父代之一(即按概率选择其中一个作为父代,不加权)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值