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>
复制代码

 

posted @   一剑天门  阅读(362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示