JS原型

作者: 苏码码 | 来源:发表于2021-04-09 18:57 被阅读0次

原型是一个对象,其他对象可以通过它来实现属性继承
一、JS对象分两种:
普通对象object和函数对象function
prototype 是函数才有的属性
proto是每个对象都有的属性

二、普通对象和函数对象区别
凡是通过new Function创建的对象都是函数对象,其他都是普通对象(通常通过object创建),可以通过typeof来判断

function f1(){}
typeof f1 // 'function'

var o1 = new f1() // 函数实例
typeof o1   //'object'

var o2 = {}
typeof o2  // 'object'
1、每一个函数对象都有一个prototype属性,但是普通对象是没有的;prototype下面又有个constructor,指向这个函数
2、每个对象都有一个名为_proto_的内部属性,指向它所对应的构造函数的原型对象,原型链基于_proto_

function Person(){}
Person.prototype.name = 'abc'
var p1 = new Person()
var p2 = new Person()
p2.name = 'mnp'
p1.hasOwnProperty('name')   => false    原型属性
p2.hasOwnProperty('name')  => true    实例属性
'name' in p1  => true
'name' in p2  => true
// hasOwnProperty  检测某个属性是否属于某个实例还是原型属性
//in 操作符会在通过对象能够访问给定属性时返回 true,无论该属性存在于实例中还是原型中

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • 我的投稿

    js原型

  • JS原型

    最近一直在理解JS的原型------《你不知道的JS》--------《JS设计模式》 里面都讲JS的原型运作方式...

  • js基础(三)

    js基础 原型链和原型对象 ... ... js没有继承原型对象prototype通常用来添加公共的属性或行为且只...

  • 发现•分享—2019-01-17

    文章 JS JS 异步编程六种方案 JS基础—原型对象的那些事(一) JS基础—原型对象的那些事(二) CSS 综...

  • 前端资料

    ES6新数据类型 Symbol . js变量提升函数提升 js this js 原型及原型链理解 new做了什么 ...

  • javaScript中的面向对象思想之原型

    二、js的原型1、原型的概念原型是构造函数在js代码编译阶段,由系统为我们创建出来的一个对象;原型原型可以给系统构...

  • 前端开发必须知道的JS(一) 原型和继承(转载)

    前端开发必须知道的JS(一) 原型和继承 原型和闭包是Js语言的难点,此文主要讲原型及原型实现的继承,在(二)中会...

网友评论

      本文标题:JS原型

      本文链接:https://www.haomeiwen.com/subject/xlaukltx.html