分享web开发知识

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

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

JS原型和原型链

发布时间:2023-09-06 02:34责任编辑:郭大石关键词:暂无标签

原型和原型链在JS中是比较复杂的一块,接下里开始我们基础知识的学习

  1.prototype和__proto__的区别:prototype原型对象只有函数才拥有的属性,__proto__是所有对象都拥有的属性。

var a = {};console.log(a.prototype); ?//undefinedconsole.log(a.__proto__); ?//Object {}var b = function(){}console.log(b.prototype); ?//b {}console.log(b.__proto__); ?//function() {}

  2.constructor:默认情况下,所有的原型对象都会自动获取一个constructor属性,这个属性指向prototype属性所在的那个函数

function Person(){this.name=name;}var child = new Person()child.constructor = Person//true
Person.prototype.constructor === Person//true

   3.__proto__:任何一个JS对象都包括这个属性,他是用于指向创建他的构造函数的原型对象

child.__proto__ === Person.prototype // true

   4.什么是原型链:由于__proto__是所有对象都有的属性,js里万物皆对象,所以会形成一条__proto__链条,递归访问会到头,最后会到null

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

JS原型和原型链

原文地址:https://www.cnblogs.com/advanceCabbage/p/10465891.html

知识推荐

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