【无标题】

原型和原型链

  • 所有的函数都是通过new函数创建
  • 所有函数都是对象 通过new Function创建
  • 函数中可以有属性
  • 所有对象都是引用类型
js 复制代码
function test() { return {} }
new test() // {} new Object创建的

function test() {  }
new test() //test {}

typeof Object //'function'
typeof Array // 'function'

原型 prototype

所有函数都有一个属性:prototype ,称之为函数原型 // 普通对象没有prototype

默认情况下,prototype是一个普通的Object对象 // prototype = { }

默认情况下,prototype中有一个属性,constructor, 他也是一个对象,它指向构造函数本身

js 复制代码
var test =new Object()
test.prototype.constructor===test. //  true
Object.prototype.constructor===Object // true

引式原型 __ proto__

所有对象都有一个属性:__proto__,称之为隐式原型

默认情况下,隐式原型指向创建该对象的函数的原型

js 复制代码
// 对象一定是通过构造函数产生 函数也是对象
function test() {  }
var obj = new test();
obj.__proto__ === test.prototype //true

var obj = new test();
obj.__proto__ === Object.prototype
相关推荐
暗黑起源喵几秒前
设计模式-工厂设计模式
java·开发语言·设计模式
WaaTong5 分钟前
Java反射
java·开发语言·反射
Troc_wangpeng7 分钟前
R language 关于二维平面直角坐标系的制作
开发语言·机器学习
王哲晓8 分钟前
第三十章 章节练习商品列表组件封装
前端·javascript·vue.js
努力的家伙是不讨厌的8 分钟前
解析json导出csv或者直接入库
开发语言·python·json
理想不理想v12 分钟前
‌Vue 3相比Vue 2的主要改进‌?
前端·javascript·vue.js·面试
Envyᥫᩣ22 分钟前
C#语言:从入门到精通
开发语言·c#
酷酷的阿云22 分钟前
不用ECharts!从0到1徒手撸一个Vue3柱状图
前端·javascript·vue.js
童先生43 分钟前
Go 项目中实现类似 Java Shiro 的权限控制中间件?
开发语言·go
lulu_gh_yu44 分钟前
数据结构之排序补充
c语言·开发语言·数据结构·c++·学习·算法·排序算法