H5^Study

JS高级学习:构造函数/实例对象/原型

2019-04-16  本文已影响0人  Merbng

对象创建的三种方式:

1.字面量方式
2.调用系统的构造函数
3.自定义构造函数

<script type="text/javascript">
            // 字面量方式
            var per1 = {
                name: "看看",
                age: 20,
                sex: "男",
                eat: function() {
                    console.log("卡卡卡");
                }
            };
            // 调用系统构造函数
            var per2 = new Object();
            per2.name = "加急";
            per2.age = 30;
            per2.sex = "男";
            per2.play = function() {
                console.log("爱妈妈");
            };
            //自定义构造函数
            function Person(name, age, sex) {
                this.name = name;
                this.age = age;
                this.sex = sex;
                this.play = function() {
                    console.log("啊啊女")
                }
            }
            var per3 = new Person("家啊", 30, "男");
            console.log(per3 instanceof Person);
        </script>

创建对象

实例化一个对象,的同时进行初始化

工厂模式和自定义构造函数

            function creatObject(name, age) {
                var obj = Object();
                obj.age = age;
                obj.name = name;
                obj.sayMe = function() {
                    console.log("方法");
                }
                return obj;
            }

            // 创建对象----实例化一个对象,的同时进行初始化
            function Person(name, age) {
                this.name = name;
                this.age = age;
                this.sayMe = function() {
                    console.log("方法啊")
                };
            }

构造函数和实例对象的区别

1.实例对象是通过构造函数来创建的---创建的过程叫实例化
2.如何判断对象是不是这个数据类型?

通过原型来添加方法,解决数据共享,节省内存空间

        <script type="text/javascript">
            function Person(name, age) {
                this.name = name;
                this.age = age;
            }
            // 通过原型来添加方法,解决数据共享,节省内存空间
            Person.prototype.eat = function() {
                console.log("总成绩按揭");
            }
            var p1 = new Person("安静", 20);
            var p2 = new Person("信息", 30);
            console.log(p1.eat == p2.eat); //true

            console.dir(p1);
            console.dir(p2);
        </script>

原型

三者的关系

利用原型共享数据

简单的原型写法

<script type="text/javascript">
            function Student(name, age) {
                this.name = name;
                this.age = age;
            }
            // 简单的原型写法
            Student.prototype = {
                constructor: Student,
                height: "111",
                weight: "55kg",
                stydy: function() {
                    console.log("买奶粉吗");
                }
            };
            var stu = new Student("安监局", 20);
            stu.stydy();
            console.dir(Student);
            console.dir(stu);
            console.log(Student);
        </script>
上一篇 下一篇

猜你喜欢

热点阅读