zoukankan      html  css  js  c++  java
  • 安全模式的工厂模式

    var Factory = function(type,content){
            if (this instanceof Factory)
            {
                var s = new this[type](type,content);//运算符优先顺序
                return s;
            }else {
                return new Factory(type,content);
            }
        }
    
        Factory.prototype = {
            html:function(type,content){
                this.content = content;
                this.type = type;
                this.show = function(){
                    console.log(this.type+this.content);
                }
            },
            php:function(type,content){
                this.content = content;
                this.type = type;
                this.show = function(){
                    console.log(this.type+this.content);
                }
            }
        }
        var p1 = Factory('html','哪家强?');
        p1.show();
        var p2 = Factory('php','真的不错!');
        p2.show();

     三个不同功能的按钮

     <body>
      <input type='button' value='btn1' name='click'/>
      <input type='button' value='btn2' name='mouseover'/>
      <input type='button' value='btn3' name='dblclick'/>
      <div id='div1'></div>
      <script>
        var Factory = function(type,element){
            if (this instanceof Factory)
            {
                var s = new this[type](element);
                return s;
            }else {
                return new Factory(type,element);
            }
        }
        
        Factory.prototype = {
            click:function(element){
                element.addEventListener('click',function(){
                    oDiv.innerHTML = this.value;
                },false);
            },
            mouseover:function(element){
                element.addEventListener('mouseover',function(){
                    oDiv.innerHTML = this.value;
                },false);
            },
            dblclick:function(element){
                element.addEventListener('dblclick',function(){
                    oDiv.innerHTML = this.value;
                },false);
            }
        }
    
        var aBtn = document.getElementsByTagName('input'),
            oDiv = document.getElementById('div1');
        for (var i=0;i<aBtn.length ;i++ )
        {
            Factory(aBtn[i].name,aBtn[i]);
        }
        
      </script>
     </body>
  • 相关阅读:
    TeamWork#3,Week5,Scrum Meeting 11.16
    TeamWork#3,Week5,Scrum Meeting 11.6, 11.7, 11.11, 11.12
    TeamWork#3,Week5,Scrum Meeting 11.15
    TeamWork#3,Week5,Scrum Meeting 11.14
    TeamWork#3,Week5,Scrum Meeting 11.13
    TeamWork#3,Week5,Scrum Meeting 11.9
    TeamWork#3,Week5,Bing Input Method vs Sogou Input Method
    TeamWork#3,Week5,Scrum Meeting 11.4
    Daily Scrum10 11.14
    Daily Scrum9 11.13
  • 原文地址:https://www.cnblogs.com/jokes/p/9671141.html
Copyright © 2011-2022 走看看