js面向对象

<!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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值