对象及构造函数

1、什么是面向对象?
面向对象是对过程的封装,是一种编程思想
JS对象是:键值对的集合
对象的创建有三种:
a.通过new 一个构造函数
var stu=new Student( );
b.字面量的创建
{}
c.先定义对象,后添加数据
var stu={};//即new object( );
stu.name="";
2、面向对象好处
简化冗余代码
3、面向对象的三大特征
封装,继承,多态
4、构造函数是什么?
在JavaScript中,任何合法的函数都可以作为对象的构造函数,既包含系统内置函数,也包括用户自定义函数,构造函数就是用来创建对象时初始化对象,并且总与new运算符一起使用,每一个构造函数都有一个prototype属性,指向另一个对象,这个对象的所有属性和方法都会被构造函数的实例继承;
作用是初始化对象,是对公共属性和方法的封装
5、构造函数的执行过程
js中带参构造函数的执行过程:
1.先new一个实例
2.将实参传递给形参
3.用this动态的往构造函数中添加属性和属性值
4.将new的实例赋值给变量
6、构造函数的使用注意事项
1.在命名规则上,构造函数一般是首字母大写,普通函数则是遵照小驼峰式命名法。
2.使用{}创建对象,对象的类型一定是Object,相当于使用了new Object()
3.使用new关键字创建的对象,对象的类型就是创建这个对象使用的构造函数的函数名
7、什么是原型
- 神秘对象针对构造函数创建出来的对象称为 “原型对象”
- 简称原型 (对象的原型)
8、原型的作用是什么?
使用原型 解决构造函数的问题

9、如何获取原型(2种方式)
a.通过构造函数访问原型
构造函数名.prototype
b.通过实例化的对象访问原型
对象.prototype

在 JavaScript 中,每个对象都有一个原型对象和一个构造函数。实例对象是通过构造函数创建的。构造函数是一个特殊的函数,它用来创建对象构造函数定义了对象的属性和方法,当我们使用 new 操作符创建实例对象时,实例对象会自动继承构造函数的属性和方法。 原型对象是一个普通的对象,它包含构造函数的属性和方法。每个实例对象都可以通过原型对象来访问和继承构造函数的属性和方法。也就是说,原型对象是所有实例对象的公共祖先,它们共享同一个原型对象构造函数可以通过 this 关键字来访问实例对象的属性和方法。而实例对象可以通过点操作符或方括号操作符来访问原型对象的属性和方法。 例如,我们可以定义一个构造函数 Person,然后通过它创建多个实例对象: ```javascript function Person(name, age) { this.name = name; this.age = age; } // 创建实例对象 var person1 = new Person('Alice', 25); var person2 = new Person('Bob', 30); ``` 在上面的例子中,Person 就是一个构造函数,它定义了两个属性 name 和 age。通过 new 操作符创建的 person1 和 person2 就是实例对象。 每个实例对象都有一个 __proto__ 属性,它指向构造函数的原型对象。我们可以通过实例对象的 __proto__ 属性来访问原型对象的属性和方法: ```javascript console.log(person1.__proto__ === Person.prototype); // true console.log(person2.__proto__ === Person.prototype); // true ``` 我们也可以通过构造函数的 prototype 属性来访问原型对象的属性和方法: ```javascript console.log(Person.prototype.sayHello); // [Function: sayHello] // 通过实例对象的 __proto__ 属性访问原型对象的属性和方法 console.log(person1.__proto__.sayHello()); // Hello, my name is Alice // 通过构造函数的 prototype 属性访问原型对象的属性和方法 console.log(Person.prototype.sayHello()); // Hello, my name is undefined ``` 在上面的例子中,我们定义了一个 sayHello 方法,并将它添加到了 Person 的原型对象中。我们可以通过实例对象的 __proto__ 属性或构造函数的 prototype 属性来访问该方法。需要注意的是,通过构造函数的 prototype 属性访问该方法时,this 关键字将指向 undefined,因为我们没有指定 name 属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值