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

    一、基础知识分析

    1、类与对象的定义
    类:一群有相同属性与行为集合体(人类:群体概念)
    对象:从类中拿出的具有确定属性值和方法的个体称为对象(个体概念)

    2、类和对象的关系

    类是抽象的,对象是具体的。(类是对象的抽象化,对象是类的具体化)
    通俗来说,类是一个抽象的概念,表示具有相同属性和行为的集合,但是类仅仅表明这类群体具有相同的属性,没有具体的属性值。
     而对象是对类的属性进行具体赋值后,而得到的一个具体的个体;

    3、使用类和对象的步骤
    ①创建一个构造函数(一个类)类名必须要每个单词的首字母大写
    function 类名(){}
    this.属性=属性1;
    this.方法=function(){}
    this指向谁?指向即将调用当前构造函数的对象。
    ②通过类实例化出一个新的对象
    var obj = new 类名(属性-Value)
    原构造函数指向新的object对象;
    obj.方法();调用方法
    obj.属性();调用属性


    4、两个重要的属性:
    constructor:返回当前对象的构造函数。(只有对象才有,返回的属于类)
    zhangsan.constructor==Person
    >>>对象的constructor,位于_protocol_原型对象上
    instanceof判断一个对象是不是某个类的实例
    zhangsan instanceof Person


    5、广义对象与狭义对象
    狭义对象:只有属性方法,除此之外没有任何东西
    var obj = {}; var obj = new Object();
    广义对象:除了用字面量声明的基本数据类型之外,万物皆对象。即能够添加属性方法的变量,就是对象
    var s = "1",不是对象
    var s = new String("1"); 就是对象

    二、this详解

    1、谁最终调用函数,this指向谁。
    ① this指向的,永远只可能是对象!!!!!!
    ② this指向谁,永远不取决于this写在哪!!而是取决于函数在哪调用。
    ③ this指向的对象,我们称之为函数的上下文context,也叫函数的调用者


    2、※※※※※this指向的规律(与函数调用的方式息息相关):
    this指向的情况,取决于函数调用的方式有哪些:
    ① 通过函数名()直接调用:this指向window
    ② 通过对象.函数名()调用的:this指向这个对象
    ③ 函数作为数组的一个元素,通过数组下标调用的:this指向这个数组
    ④ 函数作为window内置函数的回调函数调用:this指向window
    setInterval setTimeout 等...
    ⑤ 函数作为构造函数,用new关键字调用时:this指向新new出的对象

    三、原型与原型链_proto_与prototype

    1、prototype:函数才有prototype。是一个对象指向了当前构造函数的引用地址
    2、_proto_:所有对象都有proto属性,当用构造函数实例化一个对象时,会将新对象的proto属性指向构造函数的prototype
        zhangsan._proto_==Person.prototype √
        所有对象最终都会指向object的prototype


    【原型链】
    1、通过构造函数new出的新对象的proto指向构造函数的prototype
    2、所有函数的protot指向function该内置函数的prototype
    3、非构造函数new出的对象(包括大括号直接声明 new Object() 对象的prototype)的proto指向object的prototype
    4、object的proto指向null

  • 相关阅读:
    6-Python爬虫-分布式爬虫/Redis
    ES 查询时 排序报错(fielddata is disabled on text fileds by default ... )解决方法
    Intellij Idea webstorm 激活
    Intellij Idea 配置jdk
    java 获取(格式化)日期格式
    js 跳转 XSS漏洞 预防
    CSS去掉背景颜色
    js对象无法当成参数传递 解决方法
    Elasticsearch java api
    java多条件查询SQL语句拼接的小技巧
  • 原文地址:https://www.cnblogs.com/adaia/p/6854055.html
Copyright © 2011-2022 走看看