面向对象--第一节

1、什么是对象
对象:是类的实例 万事万物皆对象.
:具有相同特征(属性)和行为(方法)的事物的抽象 类是对象的类型.
区分对象的黄金法则:当我们看到某个概念的时候如果每个人 的大脑中想到的都是同一个事物的时候,此时就是对象;反之则是类。具体到某一个事物
2、内置类
js中没有类,是通过构造函数模拟类。
js中是系统提供的内置类。例如:String Img Date RegExp Array Number
根类
Object我们js中最上层的类,所有类继承与它
创建对象

方式1:
  var Cat = { name : '', color : '',run:function(){}  }
方式2:
  var cat1 = {}; // 创建一个空对象   
       cat1.name = "大毛"; // 按照原型对象的属性赋值 
      cat1.color = "黄色"; 
        cat1.run = function(){} 
      var cat2 = {};    
          cat2.name = "二毛";    
          cat2.color = "黑色";
          cat1.run = function(){} 
方式3:(工厂模式创建对象)
   function person(age,name,weight){
           var obj = {
               name1:name,
               age1:age,
               weight1:weight,
               say:function(){
                   console.log('hello');
               },
           }
           return obj;
       }
      ** **使用对象:** **
       var jinglei = person(18,'景磊',158);
       console.log(jinglei.name1);
       jinglei.say();

构造函数
其实就是一个普通函数,但是内部使用了this变量。对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上。

function person(age,name,weight){
            var obj = {
                name1:name,
                age1:age,
                weight1:weight,
                say:function(){
                    console.log('hello');
                },
            }
            return obj;
        }
        var jinglei = person(18,'景磊',158);
        console.log(jinglei.name1);
        jinglei.say();

原型
js规定,每一个构造函数都有一个prototype属性
prototype:我们可以找到当前类的原型,并且我们可以通过原型给当前类添加属性与方法
通常我们可以把一些不变的方法与属性添加上

function Person(name,age,gender){
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
Person.prototype.type = '人';
console.log(wen.type);
// 原型链 

//  面向对象的三大特征:封装,继承。多态

你可能感兴趣的:(面向对象--第一节)