zoukankan      html  css  js  c++  java
  • 面向对象

    面向对象
    1.什么是对象?
    对象概念:具有属性和方法,特指的某一个事物。
    * 没有对象怎么办?new一个
    * 所有的实例对象都有一个对应的构造函数(包括DOM实例对象)
    一般情况下,真正的数据存储在实例对象中,而不是构造函数。
    对象的创建:方式三种
    * 1.调用系统的构造函数创建对象
    * //第一种
    var stu=new Object();
    stu.name="小白";
    stu.age=18;
    stu.eat=function(){
    console.log("我喜欢。。。");
    }
    console.log(stu.name);
    console.log(stu.age);
    * 2.调用自定义构造函数创建对象
    function student(age,name,sex){
    this.name=name;
    this.age=age;
    this.sex=sex;
    this.sayhi=function(){
    console.log("我叫"+this.name+",我今年:"+this.age);
    };
    };
    //创建学生对象
    var stu=new student(12,"小白","男");
    stu.sayhi();
    * 3.使用字面量方式创建对象
    var obj={
    name: "小白",
    age: 18,
    sex: "男",
    sayHello: function () {
    console.log("我是" + this.name + "我是:" + this.sex + "人");
    }
    }

    var obj = {};
    obj.name = '张三';
    obj.age = 12;

    // 工厂(用来生产实例对象)
    function factory(name,age){
    // var obj = new Object();
    // var obj = new Object;//如果构造函数不需要传递参数,那么实例化时可以省略括号
    var obj = {};
    obj.name = name;
    obj.age = age;
    return obj;
    }

    var o1 = factory('tom',12);
    var o2 = factory('jerry',13);
    console.log(o1 == o2);//false
    2. 对象实例化本质:
    1、浏览器根据构造函数在内存中开辟一块内存
    2、浏览器会给上面产生的内存起一个名字this(本质上就是内存地址)
    3、通过this给这块内存添加数据
    4、把this返回给一个变量
    3. 构造函数的返回值问题:
    1、默认情况下构造函数的返回值是this,
    2、如果给构造函数显示的返回一个基本类型的数据,那么和不返回的效果一样
    3、如果给构造函数显示的返回一个引用类型,那么就以此为准,就不会返回默认 的this
    4.原型
    1. 原型prototype
    原型prototype是构造函数的属性,本质上是对象(可以理解成Object的实 例对象:new Object()或者{})
    prototype的主要作用:1、数据共享(实例对象共享数据);2、实现继承
    原型中的所有数据是被所有的实例对象共享的、
    2、原型链
    所有的构造函数中都有一个原型属性prototype,本质上该属性就是对象(Object的实例对象)
    原型对象中默认有一个属性constructor,该属性指向原型所属的构造函数
    所有的实例对象中都有一个__proto__属性,该属性也指向构造函数的原型 对象,注意:__proto__属性不可以在编程中使用,该属性不是标准属性,实际 上该属性是浏览器内部自己使用的
    3. 构造函数、实例对象、原型对象三者之间的关系:
    1、构造函数都有原型属性prototype
    2、实例对象都有__proto__属性
    3、原型中都有constructor属性
    5. 对象属性的判断及方法的介绍
    1、hasOwnProperty(),该方法位于Object.prototype
    2、in 判断某个属性是否在构造函数或者原型链上

    努力到无能为力,拼搏到感动自己。
  • 相关阅读:
    Linux下删除某些非法字符文件名的文件
    华为面经之我的同学是个死神
    算法面经之华为
    【剑指offer】两个链表的第一个公共结点
    算法面经之百度
    【剑指offer】丑数
    【剑指offer】把数组排成最小的数
    【深度学习最优化方法】
    【矩阵范数与秩、正定】
    算法面经之大华+顺丰+爱奇艺
  • 原文地址:https://www.cnblogs.com/woniubushinide/p/6827944.html
Copyright © 2011-2022 走看看