企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 第一、对象是什么? ## A. 对象是单个实物的抽象。 一本书、一辆汽车、一个人都可以是对象,一个数据库、一张网页、一个与远程服务器的连接也可以是对象。当实物被抽象成对象,实物之间的关系就变成了对象之间的关系,从而就可以模拟现实情况,针对对象进行编程。 ## B. 对象是一个容器,封装了属性(property)和方法(method) 属性是对象的状态,方法是对象的行为(完成某种任务)。比如,我们可以把动物抽象为animal对象,使用“属性”记录动物的颜色\种类,使用“方法”表示动物的某种行为(奔跑、捕猎、休息等等)。 ## 1.构造函数 - 面向对象编程的第一步,就是要生成对象。前面说过,对象是单个实物的抽象。通常需要一个模板,表示某一类实物的共同特征,然后对象根据这个模板生成。 ***** - 典型的面向对象编程语言(比如 C++ 和 Java),都有“类”(class)这个概念。所谓“类”就是对象的模板,对象就是“类”的实例 - 而Javascript在es6之前没有类这个概念,Javascript使用构造函数来模拟Java中的类; ***** - JavaScript 语言的对象体系,不是基于“类”的,而是基于构造函数(constructor)和原型链(prototype) 例子:实现一个person类,有name,age ~~~ var Person = function(name,age){ this.name = name; this.age = age; } ~~~ [Person]()就是构造函数。为了与普通函数区别,构造函数名字的第一个字母通常大写。 ### 构造函数的特点 1. 函数体内部使用了this关键字,代表了所要生成的对象实例。 2. 生成对象的时候,必须使用new命令。 >例子 :生成一个实例对象chengchao ~~~ var chengchao = new Person("程超",18) ~~~ >调用对象的属性 语法:obj.attr ~~~ console.log(chengchao.age); //18 ~~~ ## 2.new命令的原理 使用new命令时,它后面的函数依次执行下面的步骤。 1.创建一个对象实例 2.实例化对象的原型指向构造函数的原型对象 ~~~ console.log(chengchao.__proto__== Person.prototype) ~~~ 3.将这个对象赋值给构造函数的this