当前位置: 首页 > news >正文

广州市越秀区建设和水务局网站宁波seo免费优化软件

广州市越秀区建设和水务局网站,宁波seo免费优化软件,濮阳网站建设公司,做一个网站中的搜索功能怎么做一个对象的 __proto__ 指向的是这个对象的构造函数的 prototype。 prototype 是什么 prototype 是函数的属性,是一个继承自 Object 的对象,默认的 prototype 只有一个属性,其中包含 constructor,指向当前函数自身。 Ctor.proto…

一个对象的 __proto__ 指向的是这个对象的构造函数的 prototype

prototype 是什么

prototype函数的属性,是一个继承自 Object 的对象,默认的 prototype 只有一个属性,其中包含 constructor,指向当前函数自身。

Ctor.prototype = Object.create(Object.prototype, {constructor: { value: Ctor },
});

一个 Function 对象在使用 new 运算符来作为构造函数时,会将它的 prototype 属性作为新对象的原型。

function Ctor() {}
const inst = new Ctor();Ctor.prototype === Object.getPrototypeOf(inst); // true
Ctor.prototype === inst.__proto__; // true

__proto__ 是什么

__proto__对象的属性,是对象的原型对象,如果在对象上没有找到某个属性则会沿着对象的原型链查询,所有的对象都继承自 Object

普通对象的 __proto__ 属性是对象,函数的 __proto__ 是一个内置函数。

创建一个对象时会给这个对象一个 __proto__ 属性,指向其构造函数的 prototype 属性。

function Ctor() {}
const inst = new Ctor();inst.__proto__ === Ctor.prototype; // true
inst.__proto__.constructor === Ctor; // true
inst.constructor === Ctor; // true
inst.hasOwnProperty("constructor"); // false constructor 是 inst.__proto__ 上的属性

未用 new 操作符创建的对象默认构造函数为 Object

const obj = {};obj.constructor === Object; // true

函数的独特之处

JavaScript 中万物皆为对象,函数也是一种特殊的对象,所有的函数都继承自 Function

function Ctor() {}Ctor.__proto__ === Function.prototype; // true

关于 Function

  • Function.constructor 指向 Function 自身。
  • Function.prototype 是一个函数。
Function.constructor === Function; // true
Function.prototype; // ƒ () { [native code] }
Function.prototype.__proto__ === Object.prototype; // true

需要注意的是,函数继承自 Function,但是用函数作为构造函数创建出的实例对象是继承自 Object 的。

function Ctor() {}
const inst = new Ctor();Object.prototype.tag = "obj";console.log(Function.tag); // obj
console.log(Ctor.tag); // obj
console.log(inst.tag); // objFunction.prototype.tag = "func";
console.log(Function.tag); // func
console.log(Ctor.tag); // func
console.log(inst.tag); // objCtor.prototype.tag = "ctor";
console.log(Function.tag); // func
console.log(Ctor.tag); // func
console.log(inst.tag); // ctor

Q&A

Ctor.prototype 是什么

函数的 prototype 是一个继承自 Object 的对象,默认的 prototype 只有一个属性,其中包含 constructor,指向当前函数自身,可以这样定义:

Ctor.prototype = Object.create(Object.prototype, {constructor: { value: Ctor },
});

Ctor.__proto__ 是什么

js 中的函数也是一种对象,函数对象的构造函数是 Function对象的原型指向其构造函数的 prototype,因此函数的 __proto__ 属性指向 Function.prototype

注意 Function.prototype 是一个内置函数。

function Ctor() {}
Ctor.__proto__ === Function.prototype; // true
Function.prototype; // ƒ () { [native code] }

Ctor.prototype.__proto__ 指向什么

所有对象的默认构造函数都是 ObjectCtor.prototype 的原型就是其构造函数的 prototypeObject.prototype

function Ctor() {}
Ctor.prototype.__proto__ === Object.prototype;

为什么 Function.prototype 是函数

之前说过函数的 prototype 是对象,但是 Function.prototype 却是一个函数,在 ECMAScript® 2015 Language Specification中描述了这样做的原因:

NOTEThe Function prototype object is specified to be a function object to ensure compatibility with ECMAScript code that was created prior to the ECMAScript 2015 specification。

注:Function 原型对象被指定为函数对象,以确保与 ECMAScript 2015 规范之前创建的 ECMAScript 代码兼容。

Function 原型对象本身就是一个内置函数对象。当被调用时,它接受任何参数并返回 undefined。它没有[[Construct]]内部方法,因此它不是构造函数。

参考

MDN Object.prototype.__proto__

ECMAScript® 2015 Language Specification

http://www.khdw.cn/news/29154.html

相关文章:

  • 网站在电脑与wap显示一样如何做好品牌推广工作
  • 肥城住房和城乡建设局网站先做后付费的代运营
  • 品牌网站建设解决方公众号软文推广
  • 提供常州网站优化上海网络营销上海网络推广
  • 宁波网站建设多少钱网页模板图片
  • 灵溪网站建设小程序推广运营的公司
  • 禅城网站建设多少钱发稿媒体平台
  • 网站设计的需求分析淘特app推广代理
  • 连锁酒店网站建设网站收录平台
  • 湘潭网站建设 多少钱磐石网络高端网站定制
  • 全国工厂的网站建设阿里巴巴运营
  • 网站建设工作室百度一下你就知道
  • 做电子商务平台网站需要多少钱网络营销软文范例500字
  • 做seo推广网站在线咨询seo网站关键词优化怎么做
  • 大连网站哪家做的好深圳做网站的公司
  • 龙华做网站 熊掌号东莞seo关键词排名优化排名
  • 幼儿园主题网络图如何设计东莞整站优化
  • 360企业网站认证互联网广告销售好做吗
  • eclipse用来做网站前端2022最近的新闻大事10条
  • 济南代做标书网站标志西安网络推广外包公司
  • 想让网站被谷歌收录怎么做sem竞价培训
  • wordpress会员推广下载支付插件哈尔滨网络优化公司有哪些
  • 广告策划的目的是什么百度搜索关键词排名优化推广
  • 怎么做网站作业网站策划是干什么的
  • 展示类网站模板js百度爱采购平台登录
  • 成都个人做网站十大新媒体平台有哪些
  • 在广州开发一个营销网站多少钱网络服务合同纠纷
  • 做网站需要视频衔接怎么aso优化{ }贴吧
  • 招聘网站可以同时做两份简历吗浏览器打开是2345网址导航
  • 兰州网站制作seo tdk