首页 > 代码库 > javacript函数面向对象笔记

javacript函数面向对象笔记

<!DOCTYPE html>
<html>
<head>
	<title></title>
	<script type="text/javascript">
		     function hero(name) {            //构造函数
            this.name=name;
            this.occupation=‘Ninja‘;
            this.whoAreyou=function() {
                 return ‘I am‘+ this.name +this.occupation;
            }
              
         }

         var hero1=new hero(‘Michelangelo‘);
          console.log(hero1.name);
         var hero2=new hero(‘Lucy‘);
           console.log(hero2.name);
           console.log(window.name);


           var obj={};
            console.log(obj.constructor);
            console.log(typeof obj.constructor);

           //  instanceof  检测一个对象是不是有某个指定的构造函数所创建的;
           function Hero( ) {  };
            var hero_1=new Hero();
            var obj_a={};
           console.log(hero_1 instanceof Hero);
            console.log(hero_1 instanceof Object);
            console.log(obj_a instanceof Object);

            var  first_a=new Function(‘a‘,‘b‘,‘c‘,‘d‘, ‘return arguments‘ );
            console.log(first_a(1,2,3,4));
            var first_b=new Function(‘a‘,‘b‘,‘c‘,‘d‘, ‘return arguments‘ );
            console.log(first_b(12,15,13,14));
            var first_c=new Function(‘a‘,‘b‘,‘c‘,‘d‘, ‘return arguments‘ );
            console.log(first_c(4,5,6,7));

              var some_obj={
                  name:‘Ninja‘,
                  say:function(){
                    return  "I‘m a" + this.name;
                  }
              }

              function some_fun() { }

               some_fun.prototype=some_obj;
               console.log(some_fun.name)
               var some_Ninja=new some_fun();
               console.log(some_Ninja.name);

               var some_obja={
                  name:‘Ninja‘,
                  say:function (who) {
                      return ‘haha ‘+ who +‘ I am a ‘+ this.name;
                  }
               }

               var mike={name: ‘Kate‘}

               console.log(some_obja.say(‘Jim‘));

              
               console.log( some_obja.say.call(mike,‘Ninja‘));
               console.log(some_obja.say.apply(mike,[‘Lily‘]));   //apply 参数通过数组传递

               var dateNow=new Date();
               console.log(dateNow);
                var dateM= dateNow.setMonth(2);
               console.log(dateM);
               dateNow.setMonth(3);
               console.log(dateNow.toString());
              var dateP=Date.parse(‘Jul 1,2013‘)
               console.log(dateP)
               //console.log(dateP.());

               //正则表达式
                var re= new RegExp("j.*t");
                console.log(re.test("javascript"));
               var s=new String(‘HelloJavascriptWorldstring‘);
                var sMatch= s.match(/a/g);   //匹配字符串的a的数组
               console.log(sMatch);
               var sSearch=s.search(/a/i);   //匹配字符串的a的位置
                console.log(sSearch);
              var sReplace=s.replace(/[A-Z]/g,‘ ‘);  //替换所有a-z大写字母,
                console.log(sReplace);

                var deEmial=‘deveil@163.com‘;
                var re=/(.*)@(.*)\.(.*)/;
                 var callbackfun=function () {
                    glob=arguments;
                    return arguments[1] +‘ at ‘+arguments[2]+‘ dot ‘+arguments[3];
                 }
                  console.log(deEmial.replace(re,callbackfun));

                 function fun_c() {
                     function fun_d() {
                          return this;
                          console.log(this);
                      }
                     fun_d();

                    }

                 var fun_a=new fun_c();

                 var arr_c=[1,2,12,[4,5,6]];
                console.log(arr_c.sort());
                console.log(arr_c.join(‘--‘));
                console.log(arr_c);

                //原型对象
                function Creatpro(name,color){
                     this.name=name;
                     console.log(this);
                     this.color=color;
                     this.whatareyou=function(){
                         console.log(‘iam ‘+this.name+this.color);     
                     };
                }
                
                  
              Creatpro.prototype={
                     price:100,
                     rating:3,
                     getInfo:function () {
                        console.log(‘Rating ‘+ this.rating+‘ ,price ‘+this.price);
                     }
                };
                 var CreatePro_a=new Creatpro(‘Lily‘,‘red‘);
                      CreatePro_a.whatareyou();
                      CreatePro_a.getInfo();
                      console.log(CreatePro_a.constructor);
                      console.log(CreatePro_a.constructor.prototype.rating);
                      console.log(CreatePro_a.name);
                      console.log(CreatePro_a.price);

                function getGarde(name) {
                         this.name=name;
                         
                      };
                    getGarde.prototype.name="person";     //设置默认属性name名称 
                var toy=new getGarde(‘robot‘);           // 新建一个对象 toy
                delete toy.name;                        //删除toy的名称
                console.log(toy.name)
                  toy.name=‘vegetables‘;              //设置toy的名称
                console.log(toy.name)


                function getGarde_a(name,color) {
                     this.name=name;
                     this.color=color;
                     this.say=function(){
                        console.log(this.name+‘ haha ‘+this.color )
                     }
                  // body...
                }
                getGarde_a.prototype.price=210;
                getGarde_a.prototype.rating=5;

                var getGarde_b={
                    tall:145,
                    animate:‘2d‘,
                    numbers:14
                 }
                getGarde_a.prototype=getGarde_b;
                console.log(getGarde_b.isPrototypeOf(‘getGarde_a‘));   //  判断getGarde_a的原型属性是不是getGarde_b的
                var toy_a=new getGarde_a(‘Lucy‘,‘orange‘);

                console.log(toy_a.name);

                for(var pop in toy_a){                     //遍历对象的所有属性方法
                    console.log(pop +‘ = ‘+ toy_a[pop]);
                }


                console.log(toy_a.propertyIsEnumerable(‘name‘)); // 属性是否可枚举   原型链的属性也是不可枚举的
                console.log(toy_a.propertyIsEnumerable(‘widths‘));
                console.log(toy_a.propertyIsEnumerable(‘rating‘));
                console.log(toy_a.hasOwnProperty(‘name‘));  //判断属性是原型对象 还是自身的;
                console.log(toy_a.hasOwnProperty(‘price‘));


                 

                function shape(typedd){ 
                    this.type=typedd;
                    this.getTypedd=function(){
                         console.log(this.type);
                    }
                   
                }
                var  shape_a= new shape(‘hello‘);
                 //console.log(shape_a.getTypedd());

                 function tpro(){
                    this.textd=‘javascript‘;
                    this.heights=1245;
                    this.widths=1246;
                    this.sayWidth=function(){
                        console.log(this.widths);
                    }
                 }
                 var tpro_a= new tpro();
                 for(porp in tpro_a){
                     console.log(porp +‘ = ‘ + tpro_a[porp]);
                 }


                 function shape_A() {
                    shape_A.prototype.name=‘shape_A‘;
                     shape_A.prototype.toString=function(){
                        return this.name;
                    }
                 }

                 function shape_B() {
                    this.name="2dshape";
                 }

                 function Triangle(side,height) {
                    this.name="Triangle";
                    this.side=side;
                    this.height=height;
                    this.getArea=function ( ) {
                        return  this.side*this.height/2;
                    }
                    
                 }
                  
                  shape_B.prototype= new shape_A();   //继承原型里的属性
                  Triangle.prototype= new shape_B();
                  shape_B.prototype.constructor=shape_B;
                  Triangle.prototype.constructor=Triangle;
                  var mytri= new Triangle(3,5);
                  console.log(mytri.getArea());
                  console.log(mytri.toString());

               //临时构造器

               function shapeCreate() {
                  shapeCreate.prototype.name="Java";
                  shapeCreate.prototype.showName=function () {
                       console.log(this.name);
                  }
               }
                 function shapeTwo(){};
                 var F=function () {  };

                 F.prototype=new shapeCreate();
                 shapeTwo.prototype=new F();
                 shapeTwo.prototype.constructor=shapeTwo;
                 shapeTwo.prototype.name="12121";
                 shapeTwo.prototype.showName();


    


           
              

	</script>
          
</head>
<body>

</body>
</html>

  

javacript函数面向对象笔记