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

    1.面向对象:是一种编程的思想,程序里用面向对象的方法描述现实世界中的一个具体的事物,

    2.对象

    2.1什么是对象?

    封装了一个事物的属性和功能的程序结构,其属性可以包括基本值,对象或者函数。对象的行为相当于其方法,特征相当于其属性。

    2.2对象的创建

             2.11对象字面量:

    var obj = {

    属性名:属性值,

    ……

    方法名:function(){

             this.属性名,

             this.方法名(),

    }

    ……

    }

    Eg:var o = {

      name: 'zs',

      age: 18,

      sex: true,

      sayHi: function () {

        console.log(this.name);

      }

    };  

    2.12 new Object()创建对象

    var person = new Object();

      person.name = 'lisit';

      person.age = 35;

      person.job = 'actor';

      person.sayHi = function(){

      console.log('Hello,everyBody');

    2.13自定义构造函数

    构造函数 ,是一种特殊的函数。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

    1. 构造函数用于创建一类对象,首字母要大写。
    2. 构造函数要和new一起使用才有意义。

    function Student(sname,sage){

                                       this.sname = sname;

                                       this.sage = sage;

                                       this.intr = function(){

                                                console.log(`My name is ${this.sname},I'am ${this.sage}`);

                                       }

                              }

                              var lilei = new Student("Li Lei",11);

                              var lihua = new Student("Li Hua",11);

                              console.dir(lilei);

                              lilei.intr();

                              console.dir(lihua);

                              lihua.intr();

    new : 4件事:

                              // 1、创建新的空对象

                              // 2、用new创建子对象时,会自动设置子对象的__proto__继承构造函数的prototype

                              // 3、用新对象去调用构造函数

                                       // new的功能将构造函数中的this指新对象

                                       // 向新对象中添加构造函数规定的属性

                                       // 将属性参数的值,保存到新对象的新属性中

                                       // 向新对象添加构造 函数规定的方法

                              // 4、将新对象的地址保存在变量

    JS this指向总结:

    关键:哪个对象调用函数,函数里面的this指向哪个对象。

    1、        普通函数调用

    var username='cn'

    function fn(){

        alert(this.username);//cn

    }

    fu();

    //---------------

    window.username='cn'

    function fn(){

        alert(this.username);//cn

    }

    fn();

    //可以理解为

    //window.fn();

    2、        对象函数调用

    这个相信不难理解,就是那个函数调用,this指向哪里

    window.b=2222

    var obj={

        a:111,

        fn:function(){

            alert(this.a);//111

            alert(this.b);//undefined

        }

    }

    • obj.fn();

    很明显,第一次就是输出obj.a,就是111。而第二次,obj没有b这个属性,所以输出undefined,因为this指向obj。

    但是下面这个情况得注意

    var obj1={

        a:222

    };

    var obj2={

        a:111,

        fn:function(){

            alert(this.a);

        }

    }

    • obj1.fn=obj2.fn;
    • obj1.fn();//222

    这个相信也不难理解,虽然obj1.fn是从obj2.fn赋值而来,但是调用函数的是obj1,所以this指向obj1

    3、构造函数调用

    var TestClass=function(){

        this.name='111';

    }

    var subClass=new TestClass();

    subClass.name='cn';

    console.log(subClass.name);//cn

    var subClass1=new TestClass();

    console.log(subClass1.name)//111

  • 相关阅读:
    git上刚下载的项目就显示有改动
    Windows Server 2012 R2安装Oracle 11g问题
    maven项目更换本地仓库
    dom4j创建和解析xml文档
    java倒计时三种简单实现方式
    JS倒计时两种种实现方式
    java加载properties文件的六中基本方式实现
    MYSQL 高级语法
    MYSQL 基础语法
    Sql 代码规范说明
  • 原文地址:https://www.cnblogs.com/yqycr7/p/11334898.html
Copyright © 2011-2022 走看看