JavaScript中原型,原型链与构造函数的理解

简介: JavaScript中原型,原型链与构造函数的理解

1:什么是构造函数(constructor)?

要想知道什么是构造函数,首先要明白普通函数与构造函数的区别。

//普通函数
var Parent = function() {
};
//此时Parent就是一个构造函数了,p1是它的实例
var p1 = new Parent();

2:分清什么是独有的

proto、 constructor属性是对象所独有的

prototype属性是函数独有的

函数也是一种对象,所以函数同样也有属性__proto__、 constructor

3:prototype属性

可以通过prototype给函数添加属性,这个函数的所有实例化对象,均可以继承我们通过它添加的属性。

使用方法:

函数名.prototype 而不是对象名

image.png

4:构造函数和原型对象的指向关系

image.png

p1.constructor 表示的是它的构造函数,p1本身是没有constructor方法的,是从p1的原型中找的。

5:proto(找到原型)

理解原型相关的例子

image.png


相关文章
|
JavaScript 前端开发 Java
深入JS面向对象(原型-继承)(一)
深入JS面向对象(原型-继承)
30 0
|
26天前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
21 2
|
28天前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承利用原型链查找属性,节省内存但不支持私有成员。类继承通过ES6的class和extends实现,支持私有成员但占用更多内存。两者各有优势,适用于不同场景。
18 0
|
2月前
|
JavaScript 前端开发
JavaScript中的正则表达式构造函数和正则表达式字面量
JavaScript中的正则表达式构造函数和正则表达式字面量
|
1月前
|
JavaScript
JS数组增删方法的原理,使用原型定义
JS数组增删方法的原理,使用原型定义
|
1月前
|
JavaScript
|
1月前
|
JavaScript
JS原型对象prototype
JS原型对象prototype
|
1月前
|
JavaScript 前端开发
在JavaScript中,如何优化原型链的性能?
在JavaScript中,如何优化原型链的性能?
14 2
|
1月前
|
JavaScript 前端开发
谈谈对 JavaScript 中的原型链的理解。
谈谈对 JavaScript 中的原型链的理解。
16 1
|
1月前
|
JavaScript 前端开发
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
js继承的超详细讲解:原型链继承、构造函数继承、组合继承、原型式继承、寄生式继承、寄生组合式继承、class继承
51 0