分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

浅谈JS中的原型对象和原型链

发布时间:2023-09-06 02:03责任编辑:林大明关键词:原型对象

我们知道原型是一个对象,其他对象可以用它实现属性继承,除了prototype,又有__proto__

1. prototype和__proto__的区别

prototype是函数才有的属性                                     __proto__是每个对象都有的属性

                                                                                但是__proto__不是一个规范的属性,只是部分浏览器

                                                                                实现了此属性,对应标准的属性是[[Prototype]]

2. __proto__属性指向谁?

__proto__的指向取决于对象创建时的实现方式。

var a = {}

 var A = function(){};

 var a = new A();

var a1 = {}

var a2 = Object.create(a1);

什么是原型链?

由于__proto__是任何对象都有的属性,而js里万物皆对象,所以会形成一条__proto__连起来的链条,递归访问__proto__必须最终到头,并且值是null.

当js引擎查找对象的属性时,想查找对象本身是否存在该属性,如果不存在,会在原型链上查找,但不会查找自身的perototype

var A = function(){};

var a = new A();

var A = function(){};var a = new A();console.log(a.__proto__); ??// A{}(即构造器function A的原型对象)console.log(a.__proto__.__proto__); // Object{}(即构造器function Object的原型对象)console.log(a.__proto__.__proto__.__proto__); //null

 原文:https://www.cnblogs.com/shuiyi/p/5305435.html

浅谈JS中的原型对象和原型链

原文地址:https://www.cnblogs.com/mikeCao/p/9271464.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved