请老师检查,谢谢!
来源:3-10 编程练习
LuciusTan
2020-05-14 17:35:03
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
function action(){
alert("前端");
}
// 工厂模式
function createFac(name,action){
var obj = new Object();
obj.name = name;
obj.action = action;
return obj;
}
var obj1 = createFac("imooc1", action);
// 原型模式
function createProto(){
}
createProto.prototype.name = "imooc2";
createProto.prototype.action = action;
var obj2 = new createProto();
// 混合模式
function createMix(name){
this.name = name;
}
createMix.prototype.action = action;
var obj3 = new createMix("imooc3");
document.write(obj1.name);
obj1.action();
document.write(obj2.name);
obj2.action();
document.write(obj3.name);
obj3.action();
</script>
</body>
</html>另外请问,用原型模式的话,在实际工作中,直接修改他的prototype是不是不太好,会使他所有的实例化对象都发生改变吧。
1回答
同学你好,代码正确,理解的也正确,直接修改prototype上的属性的确会影响它所有实例,所以在实际应用中,写在原型上的方法,一般都不会轻易改变。
如果我的回答帮到了你,欢迎采纳,祝学习愉快!