美文网首页
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