• js创建对象的多种方式


    1.字面式声明对象

    <script>
        //字面式
        var person = {
            name:'张三',
            age:16,
            run:function () {
                return '走路';
            }
        }
        alert('他叫' + person.name + ',今年' + person.age + '岁了,上学方式是' + person.run())
    </script>

    2.Object构造对象

    因为js中所有对象都是Object的子对象,所以可以new Object操作后构造函数

    <script>
        var person = new Object();
        person.name = '李四'
        person.age = 15;
        person.run = function () {
            return '骑车'
        }
        alert('他叫' + person.name + ',今年' + person.age + '岁了,上学方式是' + person.run())
    </script>

    3.构造方式声明对象

    this代表当前对象,函数内部只能用this访问属性和方法

    <script>
        function Person(name,age) {
            this.name = name;
            this.age = age;
            this.run = function () {
                alert('他叫' + person.name + ',今年' + person.age + '岁了,上学方式是坐汽车');
            }
        }
        var person = new Person('王五',17);
        person.run();
    </script>

    4.构造函数创建对象

    构造器构造的对象,效率低,并且参数顺序在函数体不能变

    <script>
        var obj = new Function('num1','num2','return num1 + num2');
        var result = obj(2,8);
        alert(result);
    </script>

    5.工厂方式声明对象

    <script>
        function createObject(name,age) {
            var person = new Object();
            person.name = name;
            person.age = age;
            person.run = function (tool) {
                alert('他叫' + this.name + ',今年' + this.age + '岁了,上学方式是' + tool);
            }
            return person;
        }
        var person = createObject('王五',16);
        person.run('坐船')
    </script>

    6.原型模式声明对象

    任何js方式或函数,都自带一个prototype属性,而且是以对象的方式存在。可让所有实例化的对象都拥有它包含的属性和方法

    <script>
        function Person() {
        }
        Person.prototype.name = '马六';
        Person.prototype.age = 17;
        Person.prototype.run = function (tool) {
            alert('他叫' + this.name + ',今年' + this.age + '岁了,上学方式是' + tool);
        };
        var person = new Person();
        person.run('坐飞机');
    </script>

    7.混合模式声明对象

    <script>
        function Person(name,age) {
            this.name = name;
            this.age = age;
        }
        Person.prototype = {
            run:function (tool) {
                alert('他叫' + this.name + ',今年' + this.age + '岁了,上学方式是' + tool);
            }
        }
        var person = new Person('马七',18);
        person.run("坐火车");
    </script>
  • 相关阅读:
    谈谈对MapTask任务分配和Shuffle的理解
    Yarn的资源调优
    @section Scripts{}的使用
    数据提高查询速度的方法(摘抄)
    customErrors 元素(ASP.NET 设置架构)
    成员资格、授权和安全性(一)
    MVC5发展历程,从MVC2谈起
    轻量级记事本工具:CintaNotes
    CF459E Pashmak and Graph [dp]
    【模板】拉格朗日插值
  • 原文地址:https://www.cnblogs.com/dslx/p/16113248.html
Copyright © 2020-2023  润新知