js面向对象

来源:互联网 发布:车秘软件怎么样 编辑:程序博客网 时间:2024/06/06 01:08
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title></head><body></body>    <script>    //封装    /*function Cat(name,color){    this.name = name;    this.color = color;  }  Cat.prototype.type = "猫科动物";  Cat.prototype.eat = function(){        alert("吃老鼠")    };        var cat1 = new Cat("大毛","黄色");      var cat2 = new Cat("二毛","黑色");      alert(cat1.type); // 猫科动物        console.log(cat2)        console.log(cat1)      cat1.eat(); // 吃老鼠*/    //继承     function Animal(){ }    function Cat(name,color){    this.name = name;    this.color = color;  }    Animal.prototype.species = "动物"    function extend(Child, Parent) {        var F = function(){};        F.prototype = Parent.prototype;        Child.prototype = new F();        Child.prototype.constructor = Child;        Child.uber = Parent.prototype;    }    extend(Cat,Animal);  var cat1 = new Cat("大毛","黄色");//  alert(cat1.species); // 动物    /*3深拷贝*/    var Chinese = {    nation:'中国'  };    var Doctor ={    career:'医生'  }    function deepCopy(p, c) {    var c = c || {};    for (var i in p) {      if (typeof p[i] === 'object') {        c[i] = (p[i].constructor === Array) ? [] : {};        deepCopy(p[i], c[i]);      } else {         c[i] = p[i];      }    }    return c;  }    Chinese.birthPlaces = ['北京','上海','香港'];    var Doctor = deepCopy(Chinese);     Doctor.birthPlaces.push('厦门');    console.log(Doctor.birthPlaces); //北京, 上海, 香港, 厦门    console.log(Chinese.birthPlaces); //北京, 上海, 香港    /* 第一种:基于Object对象*/    var person = new Object();        person.name = 'My Name';        person.age = 18;        person.getName = function(){            console.log(person)            return this.name;        }        person.getName();    /*第二种:对象字面量方式(比较清楚的查找对象包含的属性及方法)*/    var person = {        name : 'My name',        age : 18,        getName : function(){            return this.name;        }    }       </script></html>
0 0
原创粉丝点击