zoukankan      html  css  js  c++  java
  • 创建元素和对象的几种方法

    创建元素的3种方法


    1、document.write()

        <div>
            明月几时有,把酒问青天!
        </div>
        <button id="btn">点击</button>
    
        <script>
            var btn = document.getElementById('btn')
            btn.onclick = function () {
                document.write('水调歌头')
            }
        </script>

    缺陷:如果是在页面加载完毕后,此时通过这种方式创建元素,那么页面上存在的所有的内容全部覆盖

    2、obj.innerHTML

        <div id="box">
            <span>明月几时有</span>
        </div>
        <button id="btn">点击</button>
    
        <script>
            var btn = document.getElementById('btn')
            var box = document.getElementById('box')
    
            btn.onclick = function () {
                box.innerHTML = '<p>水调歌头</p>'
            }
        </script>

    3、document.createElement

        <div id="box">
            <span>明月几时有</span>
        </div>
        <button id="btn">点击添加</button>
    
        <script>
            var btn = document.getElementById('btn')
            var box = document.getElementById('box')
    
            btn.onclick = function () {
                var p = document.createElement('p')
                p.innerHTML = '把酒问青天'
                box.appendChild(p)
            }
        </script>

    创建对象的4种方法


    1、调用系统的构造函数创建对象

            var dog=new Object();
            dog.name="小白";
            dog.age=4;
            dog.weight=50;
            dog.eat=function(){
                //在当前这个对象的方法中是可以访问当前这个对象的属性的值
                console.log("喜欢吃猪肉铺!,今年"+this.age+"岁");
            }
            dog.walk=function(){
                //在当前这个对象的方法中是可以访问当前这个对象的属性的值
                console.log(this.name+this.weight+"斤,"+"喜欢跳着走路!");
            }
            
            dog.eat();
            dog.walk();
    
            // 检测当前对象是不是属于Object类型
            console.log(dog instanceof Object);

    对象有特征(属性)和行为(方法)

    2、字面量创建对象

            var dog={
                name:"小白",
                age:4,
                food:"鸡腿",
                say:function(){
                    console.log("狗的名字叫"+this.name+"
    今年"+this.age);
                },
                eat:function(){
                    console.log("最喜欢吃的是"+this.food);
                }
            };
            dog.say();
            dog.eat();

    字面量创建对象缺陷:一次性对象,无法传值

    3、工厂模式创建对象

            function person(name,age){
                var dog=new Object();//创建对象
                //添加属性
                dog.name=name;
                dog.age=age;
                //添加方法
                dog.information=function(){
                    console.log("My dog's name is "+this.name+",今年"+this.age+"岁");
                }
                // 返回值为对象
                return dog;
            }
    
            // 创建输出对象
            var dog1=person("小白",4);
            dog1.information();
            
            var dog2=person("仔仔",2);
            dog2.information();

    4、自定义构造函数创建对象

      自定义构造函数创建对象,自己定义一个构造函数(对象类型),然后创建对象

      函数和构造函数的区别;首字母是不是大写

            // 创建一个构造函数
            function Dog(name,age,weight){
                this.name=name;
                this.age=age;
                this.weight=weight;
                this.say=function(){
                    console.log("我的名字是"+this.name+"
    我的年龄是"+this.age+"
    我的体重是"+this.weight);
                }
            }
            // 创建对象——实例化一个对象。并初始化
            var dog1=new Dog("小白",4,30);
            dog1.say();
    
            var dog2=new Dog("崽崽",2,15);
            dog2.say();
            
            console.log(dog1 instanceof Dog);
            console.log(dog2 instanceof Dog);
    自定义构造函数的过程
    1. 在内存中开辟(申请一块空闲的空间)空间,存储创建的新的对象
    2. 把this设置为当前的对象
    3. 设置对象的属性和方法的值
    4. 把this这个对象返回

      

    new一个对象的过程

        创建一个新对象
        this指向这个新对象
        执行代码,即对this赋值
        返回this
  • 相关阅读:
    2018-2019-1 20189205《Linux内核原理与分析》第六周作业
    2018-2019-1 20189205《Linux内核原理与分析》第五周作业
    20189224 2018-2019-2 《密码与安全新技术专题》第三次作业
    20189224网络攻防实践第六周作业
    20189224《网络攻防实践》第五周学习总结
    20189224 2018-2019-2 《密码与安全新技术专题》第二次作业
    20189224《网络攻防实践》第四周学习总结
    《网络攻防实践》/《网络攻击与防范》第三周学习总结
    20189224 2018-2019-2 《密码与安全新技术专题》第一周作业
    KALI安装与环境配置
  • 原文地址:https://www.cnblogs.com/dawnwill/p/9853566.html
Copyright © 2011-2022 走看看