【无标题】

原型和原型链

  • 所有的函数都是通过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
相关推荐
徐小夕2 分钟前
用Vue3写了一款协同文档编辑器,效果简直牛!
前端·javascript·vue.js
liulilittle6 分钟前
HTTP简易客户端实现
开发语言·网络·c++·网络协议·http·编程语言
wangbing11259 分钟前
界面规范8-文字
前端·javascript·html
程序员皮皮林22 分钟前
Java jar 如何防止被反编译?代码写的太烂,害怕被人发现
java·开发语言·jar
qczg_wxg32 分钟前
高阶组件介绍
开发语言·javascript·react native·ecmascript
小菜全1 小时前
打包 Uniapp
javascript·vue.js·html5
itslife1 小时前
实现 Promise
前端·javascript
CHANG_THE_WORLD1 小时前
C++ 并发编程指南 实现无锁队列
开发语言·c++·缓存·无锁队列·无锁编程
这里没有酒1 小时前
[C语言] 结构体 内存对齐规则 内存大小计算
c语言·开发语言
一枚前端小能手1 小时前
🔥 老板要的功能Webpack没有?手把手教你写个插件解决
前端·javascript·webpack