JavaScript原型及原型链

简介: JavaScript原型及原型链
+关注继续查看

区别一下,普通对象和函数对象。函数对象才有prototype属性。

函数对象:

function f1(){};
var f2 = function(){};
var f3 = new Function('str','console.log(str)');

普通对象:

var o3 = new f1();
var o1 = {};
var o2 =new Object();

简单的说,凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象。原型的作用就是继承。

原型链:

JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。

原型对象prototype中都有个预定义的constructor属性,用来引用它的函数对象。

person.prototype. constructor === person  //true
Function.prototype.constructor === Function //true
Object.prototype.constructor === Object //true

总结一下:

var animal = function(){};
var dog = function(){};
animal.price = 2000;//
dog.prototype = animal;
var tidy = new dog();
console.log(dog. price)  //undefined
console.log(tidy.price)  // 2000

事实证明,真正起作用的不是prototype ,而是__proto__。


目录
相关文章
|
21天前
|
JavaScript
js原型链
对js原型链做介绍,轻松简单的了解原型链
|
28天前
|
JSON JavaScript 前端开发
JavaScript原型链污染
JavaScript原型链污染
|
1月前
|
前端开发 JavaScript
【JavaScript原型链prototype详解】
在JavaScript中,每个对象都有一个原型(prototype)属性,它指向另一个对象。这个被指向的对象也有自己的原型,以此类推,最终形成了一个原型链。原型链的顶端是Object.prototype,它是所有对象的根原型。 当我们访问一个对象的属性时,如果该对象自身没有这个属性,JavaScript会沿着原型链向上查找,直到找到匹配的属性或者到达原型链的末端。
31 0
【JavaScript原型链prototype详解】
|
1月前
|
JavaScript 前端开发
带你读《现代Javascript高级教程》七、原型和原型链(1)
带你读《现代Javascript高级教程》七、原型和原型链(1)
|
1月前
|
JavaScript 前端开发
带你读《现代Javascript高级教程》七、原型和原型链(2)
带你读《现代Javascript高级教程》七、原型和原型链(2)
|
1月前
|
JavaScript 前端开发
带你读《现代Javascript高级教程》七、原型和原型链(3)
带你读《现代Javascript高级教程》七、原型和原型链(3)
|
1月前
|
JavaScript 前端开发
带你读《现代Javascript高级教程》七、原型和原型链(4)
带你读《现代Javascript高级教程》七、原型和原型链(4)
|
2月前
|
JSON JavaScript 前端开发
|
3月前
|
JavaScript 前端开发
JavaScript 中的原型、对象原型、原型继承和原型链
在 JavaScript 中,原型(prototype)是一个对象,它用于实现对象之间的继承和共享属性。JavaScript 是一种基于原型的编程语言,每个对象都有一个原型,而原型又可以拥有自己的原型,形成一个原型链。
|
3月前
|
前端开发
前端学习笔记202306学习笔记第三十七天-js-原型链作业4
前端学习笔记202306学习笔记第三十七天-js-原型链作业4
21 0
相关产品
云迁移中心
推荐文章
更多