请老师检查,谢谢!

来源: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回答

好帮手慕久久

2020-05-14

同学你好,代码正确,理解的也正确,直接修改prototype上的属性的确会影响它所有实例,所以在实际应用中,写在原型上的方法,一般都不会轻易改变。

如果我的回答帮到了你,欢迎采纳,祝学习愉快!

1

0 学习 · 14456 问题

查看课程