美文网首页
JavaScript 对象

JavaScript 对象

作者: 陈智涛 | 来源:发表于2017-02-28 17:11 被阅读0次
<!DOCTYPE html>
<html>
    <head>
        <meta charset = "utf-8">
        <script>
            

           //1我们可以抛开类,使用字面量来构造一个对象
            var People1 ={
                name : "chenzhitao",
                printname : function(){
                    console.log(People1.name);
                }
            }
            
            People1.printname();
           //问题:太麻烦了,每次构建一个对象都是复制一遍代码如果想个性化,只能通过手工赋值,使用者必需了解对象详细
           //这两个问题其实也是我们不能抛开类的重要原因,也是类的作用
         


            //2使用函数做自动化
            function createObj(age,name){
                var obj = {
                    nick:name,
                    age:age,
                    printName:function(){
                        console.log(this.nick);
                    }

                };
                return obj;

            }
            var obj3 = new createObj("25","chenzhitao");
            obj3.printName();
            //问题:这种方法解决了构造过程复杂,需要了解细节的问题,但是构造出来的对象类型都是Object,没有识别度
           

            //3 new 运算符接受一个函数 F 及其参数
            function People (age,name) {
                this.name = name;
                this.age = age;
                this.printname = function(){
                    console.log(age,name);
                }
            }
            var p1 = new People(25,"chenzhitao");
            p1.printname();
            //问题:构造函数在解决了上面所有问题,同时为实例带来了类型,但可以注意到每个实例printName方法实际上作用一样,但是每个实例要重复一遍,大量对//象存在的时候是浪费内存

            //4.抽象重复
            //所有实例都会通过原型链引用到类型的prototype,prototype相当于特定类型所有实例都可以访问到的一个公共容器
            function Person(name,age){
                this.name = name;
                this.age = age;
                
            }
            Person.prototype.printName = function(){
                console.log(this.name);
            }

            
            var p2 = new Person("chenzhitao",25);
            p2.printName();
        </script>
    </head>

</html>

相关文章

网友评论

      本文标题:JavaScript 对象

      本文链接:https://www.haomeiwen.com/subject/gmaxgttx.html