面向对象

知识点

  • 类和对象的概念
  • 创建对象
  • 原型
  • 字面量形式创建对象

类和对象的概念

  • 类 : 是一种抽象的数据类型,是描述事物的概念;类是抽象的
    • 那么通过哪些东西描述类的概念了,即:属性,行为
  • 对象 : 是实际存在的;对象是类的实例化
  • 类和对象的关系:通过类概念的描述实例化出实际存在的对象

创建对象

 var stu1 = new Object();
 stu1.name = "hello word";
 stu1.age = 18;
 stu1.eat = function() {
  alert("我很能吃");
 }
  • 构造函数创建(其实就是个普通的函数)
//构造函数(驼峰表示命名法) 
  function CreateAnimal(name,age) {
    this.name = name;
    this.age = age;

    this.sleep = function() {
      alert("睡觉");
    }
  }
  var daxiang = new CreateAnimal('大象',100);
  daxiang.sleep();

  var dog = new CreateAnimal("单身狗",30);
  alert(dog.name);

原型

  • 原型编程 是 面向对象编程 的一种类型。它的 类 没有明确的定义,只是通过向其它的类中添加属性和方法来得到它,甚至偶尔使用空对象来创建类。
  • 原型的作用 : 保存,共享 相同的代码(对象属性,行为)
  • 访问原型的两种的方式:
    • 1.构造函数的名字.prototype
    • 2.对象.proto
  CreateAnimal.prototype.sleep = function() {
    alert("相同睡觉方法");
  }
  var daxiang = new CreateAnimal('大象',100);
  console.log(daxiang);
  console.log(daxiang.__proto__);
  console.log(daxiang.__proto__.sleep);

原型相关知识点

  • 通过原型创建 所有对象 都共享的属性
  • constructor : 构造属性, 获取创建对象的构造函数
    console.log(tea1.constructor);
    
  • isPrototypeOf:判断对象是否指向该构造函数的原型对象
    alert(Teacher.prototype.isPrototypeOf(tea1));
    
  • hasOwnProperty

//判断对应的属性 是在原型中 还是在实例中

console.log(tea1.hasOwnProperty('age'));
console.log(Teacher.prototype.hasOwnProperty('age'));

字面量形式创建对象

  • 通过字面量的形式 给原型对象赋值
Person.prototype = {
      name:"小明",
      age:15,
      run:function () {
        alert("run");
      },
      //constructor:Person
    }
  • 通过字面量创建的对象 方式 没有 constructor
  • 重写原型对象
  • 内置原型 添加新的方法
    var str = new String();
    String.prototype.addstring = function() {
      return "我们放假了";
    }
    console.log(str.addstring());
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意...
    霜天晓阅读 2,139评论 0 6
  • 面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的慨念,而通过类可以创建任意多个...
    threetowns阅读 885评论 0 4
  • 本章内容 理解对象属性 理解并创建对象 理解继承 面向对象语言有一个标志,那就是它们都有类的概念,而通过类可以创建...
    闷油瓶小张阅读 866评论 0 1
  • 博客内容:什么是面向对象为什么要面向对象面向对象编程的特性和原则理解对象属性创建对象继承 什么是面向对象 面向对象...
    _Dot912阅读 1,447评论 3 12
  • 每一个人的人生都只能自给自足,也完全可以自给自足。我们不是父母的续篇,也不是子女的前传,更不是朋友的番外。我们彼此...
    寻找阳光花园的小确幸阅读 569评论 0 1