zoukankan      html  css  js  c++  java
  • 5、面向对象

    /*① 字面量方式创建对象
             var obj = {};   //空对象
             var obj = {name:'kitty',swim:function(){console.log('在游泳')}};
             给对象丰富成员:
             对象.成员名称 = 值;
             对象[成员名称] = 值;
             对象访问本身成员:
             对象.成员名称
             对象[成员名称]();
             */
            var ldh = {}
            var Imcong = {name: 'cong', age: 40}
    
            Imcong.hoby = function () {
                console.log('breakbasst')
            }
            Imcong['addr'] = "niang_ning";
            Imcong.hoby();
            console.log(Imcong['addr']);
            /*② 构造函数方式创建对象
             var obj = new 函数();
             在javascript里边,new后边的元素是“函数”(与php的类相似)
             在实例化对象的同时会自动使得“函数”发生执行,因此成为“构造函数”方式创建对象
             */
            function peple(){
                //this在方法里边代表调用该方法的当前对象
                this.name="show";
                this.age="year";
            }
            var hzd=new peple();
            hzd.zhiye="monkey";
            console.log(hzd);
            console.log(peple);
    
            /*③ Object方式创建对象
    
             //通过“字面量”方式创建的对象,对象构造器是"Object"
             构造器:用那个“函数/类”把对象给创建出来
             */
            var colths = {color:'yellow'};
            console.log(colths);//Object { color="yellow"}
    
            var bulia = new Object();//Object { eat="fish"}
            bulia.eat = "fish";
            console.log(bulia);
    
    
            /*③
            对象在内存中的分配
             */
            function Animal(){
                this.name = "kitty";
                this.age = 6;
                this.run = function(){
                    console.log('在跑步');
                }
            }
            var cat = new Animal();
            var tiger = cat; //对象赋值-引用传递-给new Animal创建一个对象名称
            //cat和tiger共同指引同一个对象
            tiger.name = "东北虎";
            console.log(cat.name);//东北虎
    
            var wolf = new Animal();
            console.log(wolf.name)//kitty
    
            /*对象调用其他函数或方法
             解决:把其他函数增加一个别名赋予给调用对象即可
             */
            var dorg = {name:'tom',climb:function(){console.log(this.name+"frighting")}};
            dorg.climb();//tom在爬树
    
            var birth = {name:'鸟儿',hobby:'skying'};
            //使得dog对象调用cat的climb方法
    
            birth.pa = dorg.climb;//为climb的function增加一个别名为pa
            //这样climb和pa均可以调用同一个function执行
            birth.pa();//旺财在爬树
    
            /*call方式使得函数或方法执行
             call的好处:
             “无需声明新的成员”出来,就可以使得对象调用其他函数或方法
             这样会对变量污染的风险进行控制
             */
            var xiaoxuesheng={name:"xiao_hong",go:function(whatdo,who){console.log(this.name+"go to school"+whatdo+" "+who)}}
            var colege={name:'shuai_guo'}
              /*colege调用xiaoxuesheng的go方法*/
            xiaoxuesheng.go.call(colege);
            xiaoxuesheng.go.call(colege,'看看书','和朋友');//方法名称.call(方法内部this的指引,参数1,参数2,.....参数n);
                                                          //..      .apply(方法内部this的指引,[参数1,参数2,.....参数n])
            /*call方式使得函数或方法执行
             */
            var think='mony';
            function thinking(){
                console.log(this.name+"想法是"+this.think)
            }
            var boy={name:'xiaoming',think:'love'}
            thinking.call(boy)//函数.call(this指引,参数,参数。。。);
            /*获取构造器
             */
            console.log(boy.constructor);
    
            /*return的影响
             仍然实例化一个对象,不过return后边的代码不给执行
             */
            function Animal(){
                this.name = "kitty";
                this.age = 6;
    
                return 100;
    
                this.run = function(){
                    console.log('在跑步');
                }
            }
            //Animal内部有return,cat接收的是对象还是返回信息100。
            var miulk = new Animal();
            console.log(miulk);//Animal { name="kitty", age=6}
            //miulk.run();报错
  • 相关阅读:
    HTML/CSS基础知识(二)
    JS基础——变量
    HTML/CSS基础知识(四)
    NodeJS学习之win10安装与sublime配置
    HTML/CSS基础知识(一)
    HTML/CSS基础知识(三)
    win10安装git
    C#获取本机局域网IP和公网IP
    如何书写.md格式文档
    C# 获取硬盘空间信息 盘符总大小、剩余空间、已用空间
  • 原文地址:https://www.cnblogs.com/yexiangwang/p/4981407.html
Copyright © 2011-2022 走看看