• js对象实例化的常见三种方式


    三种常见模式:工厂模式,构造函数模式,原型模式

    <span style="font-size:18px;"><!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Object</title>
    </head>
    <body>
    <h1>创建对象常见的三种方式</h1>
    </body>
    <script>
        window.onload=function(){
            //工厂模式
            function oj(){
                var lio=new Object();
                lio.name='lio';
                lio.attr='男';
                lio.hobby=function(){
                    var li=document.createElement("p");
                    var txt=document.createTextNode("三妹");
                    li.appendChild(txt);
                    document.body.appendChild(li);
                };
                return lio;
            }
            var person=oj();
            //alert(person.name);
    
            //构造函数模式
            function oj2(name,age){
                this.name=name;
                this.age=age;
                this.hobby=function(){
                    var li=document.createElement("p");
                    var txt=document.createTextNode("三妹");
                    li.appendChild(txt);
                    document.body.appendChild(li);
                }
            }
            var person2=new oj2('三妹',123);
            person2.hobby();
            alert(person2.name);
    
            //原型模式
            function oj3(){
                //this.name='lio';
            }
            oj3.prototype.name='lio';
            oj3.prototype.love= function (name) {
                alert("爱"+name);
            };
            var person3=new oj3();
            //检測是在实例中还是在原型中
            alert(person3.hasOwnProperty("name"));
            alert(person3.hasOwnProperty("rename"));
            person3.love('三妹');
    
            //混合模式
            function oj4(age) {
                this.age=age;
                this.rename='aaaa';
            };
            oj4.prototype={
                constructor:oj4,
                name:'lio',
                age:123,
                love: function (name) {
                    alert(name+"爱三妹");
                }
            };
            var person4=new oj4(18);
            alert(person4.hasOwnProperty("age"));//true
            person4.love('lio');
    
        }
    </script>
    </html></span>


  • 相关阅读:
    Oracle Form Builder
    springboot post xml
    前台日期字符串 提交到后台 组装entity失败原因
    解析-dom编程
    解析-依赖注入DI
    vs 常用插件
    java 代码块 和 C#的代码块 对比
    ubuntu 常用命令
    ubuntu node
    使用 vs2015 搭建nodejs 开发环境
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/6941410.html
Copyright © 2020-2023  润新知