【无标题】

原型和原型链

  • 所有的函数都是通过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
相关推荐
四岁爱上了她1 分钟前
vue3使用插槽写一个自定义瀑布列表
前端·javascript·vue.js
艾小码6 分钟前
现代 JavaScript 基础精要:ES6+ 核心特性完全解析
前端·javascript·ecmascript 6
KasukabeTsumugi8 分钟前
如何在 Javascript/TypeScript 中实现C++里对象宏(常量宏)/全局常量的效果
javascript
遂心_9 分钟前
用 Tailwind CSS + React 打造精美商品卡片组件
前端·javascript·css
默默地离开9 分钟前
ES6 中 `Array.map()` 方法详解与 `parseInt` 的经典陷阱
前端·javascript
言兴12 分钟前
面试题深度解析:let、const 与 var 的区别
前端·javascript·面试
小高00715 分钟前
🧩面试追问:“除了 Promise,还有哪些微任务?”
前端·javascript·面试
余_弦21 分钟前
区块链钱包开发(十七)—— 构建密钥管理控制器(KeyringController)
javascript·区块链·以太坊
侧耳倾听11136 分钟前
Java的异常机制
java·开发语言
草莓熊Lotso42 分钟前
《吃透 C++ 类和对象(上):封装、实例化与 this 指针详解》
开发语言·c++·经验分享·笔记·其他