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

几个api

几个api

原型链 可以阅读此文
在这里插入图片描述

Function instanceof Object // true
Object instanceof Function // true
Object.prototype.isPrototypeOf(Function) // true
Function.prototype.isPrototypeOf(Object) // true
Object.__proto__ === Function.prototype // true
Function.prototype.__proto__ === Object.prototype // true

说明下:Object和Function都是函数对象,函数对象的_proto_都指向Function.prototype,构造函数的隐式原型( proto)指向 Function.prototype, 函数对象的__proto__指向Function.prototype

自测

function Test(name, age){this.name = namethis.age = age
}
Test.prototype.say = function(){console.log('我能说话')
}
var obj3 = new Test('Jack', 26)
var obj4 = new Test('Rose', 24)1, Test.prototype === ( ) ?
2, obj3.__proto__.__proto__ === ( ) ?
3, obj3.__proto__ === obj4.__proto__ ?
4, Test.prototype.__proto__ === ( ) ?
5, obj4.__proto__.constructor === ( ) ?
6, Object.prototype.__proto__ === ( ) ?
7, obj3.say === obj4.say ?// 1, obj3.__proto__ 或 obj4.__proto    2,Object.prototype    3, true (二者都由Test new出来,在原型链上都指向 Test.prototype)
// 4, Object.prototype    5, Test    6, null (终点)    7,true (同问题3)

Object.getPrototypeOf方法返回参数对象的原型。这是获取原型对象的标准方法。

    var F = function () {};var f = new F();Object.getPrototypeOf(f) === F.prototype // true// 几种特殊对象的方法:// 空对象的原型是 Object.prototypeObject.getPrototypeOf({}) === Object.prototype // true// Object.prototype 的原型是 nullObject.getPrototypeOf(Object.prototype) === null // true// 函数的原型是 Function.prototypefunction fun() {}Object.getPrototypeOf(fun) === Function.prototype // true

Object.prototype.isPrototypeOf()用来判断该对象是否为参数对象的原型。

console.log(Object.prototype.isPrototypeOf({})) // true
console.log(Object.prototype.isPrototypeOf([])) // true
console.log(Object.prototype.isPrototypeOf(/xyz/)) // true
console.log(Object.prototype.isPrototypeOf(Object.create(null))) // false

和 instanceof 的区别

console.log(A instanceof B);
console.log(B.prototype.isPrototypeOf(A));

Object.defineProperty() 是 JavaScript 中用于定义或修改对象的属性的方法,可以控制属性的特性(如可枚举性、可配置性、可写性等)。

Symbol 可以参考此文

let sym = Symbol();
console.log(typeof sym); // symbol
let genericSymbol = Symbol();
let otherGenericSymbol = Symbol();
let fooSymbol = Symbol('foo');
let otherFooSymbol = Symbol('foo');
console.log(genericSymbol == otherGenericSymbol); // false
console.log(fooSymbol == otherFooSymbol); // false

属性中含symbol的对象 获取属性方法

Object.getOwnPropertySymbols() ,类似于 Object.getOwnPropertyNames() 返回对象实例的常规属性数组, Object.getOwnPropertySymbols() 返回对象实例的符号属性数组。
Object.getOwnPropertyDescriptors(),返回同时包含常规和符号属性描述符的对象。
Reflect.ownKeys() ,返回常规和符号属性的键:

let s1 = Symbol('foo'),
s2 = Symbol('bar');
let o = {[s1]: 'foo val',[s2]: 'bar val',baz: 'baz val',qux: 'qux val'
};
console.log(Object.getOwnPropertySymbols(o));
// [Symbol(foo), Symbol(bar)]
console.log(Object.getOwnPropertyNames(o));
// ["baz", "qux"]
console.log(Object.getOwnPropertyDescriptors(o));
// {baz: {value: 'baz val', writable: true, enumerable: false, configurable: true}, qux: {...}, Symbol(foo): {...}, Symbol(bar): {...}}
console.log(Reflect.ownKeys(o));
// ["baz", "qux", Symbol(foo), Symbol(bar)]
http://www.lryc.cn/news/543565.html

相关文章:

  • Deepseek本地部署指南:在linux服务器部署,在mac远程web-ui访问
  • 基于 DeepSeek+AutoGen 的智能体协作系统
  • 博客系统笔记总结 2( Linux 相关)
  • 计算机毕业设计SpringBoot+Vue.js电影评论网站系统(源码+文档+PPT+讲解)
  • 精美登录注册UI,登录页面设计模板
  • 《Linux系统编程篇》共享内存(Linux 进程间通信(IPC))——基础篇
  • 【EB-03】 AUTOSAR builder与EB RTE集成
  • HTML——前端基础1
  • AI回答:Linux C/C++编程学习路线
  • 螺旋数字矩阵
  • Jupyter Notebook切换虚拟环境(Kernel管理)
  • linux下软件安装、查找、卸载
  • vuetify项目添加代理跨域请求
  • H5 火柴人科目三和GitHub获取仓库点星星的用户列表发生了艺术的碰撞
  • 【Azure 架构师学习笔记】- Azure Databricks (12) -- Medallion Architecture简介
  • 基础知识|原型在什么时候用和类的区别
  • 【FFmpeg】拉流
  • LangChain构建行业知识库实践:从架构设计到生产部署全指南
  • 解决jupyter notebook不是内部或外部命令问题
  • MySQL----case的用法
  • Unity XR-XR Interaction Toolkit开发使用方法(十)组件介绍(XR Interaction Group)
  • 深入理解 并查集LRUCaChe
  • 详解 c++ 中的 namespage
  • 50周学习go语言:第五周 复合类型与词频统计
  • HTTP非流式请求 vs HTTP流式请求
  • 深圳南柯电子|医疗设备EMC测试整改检测:零到一,保障医疗安全
  • 详解:事务注解 @Transactional
  • 【虚拟仪器技术】labview操作指南和虚拟仪器技术习题答案(一)
  • 在Linux桌面上创建Idea启动快捷方式
  • 渗透测试(WAF过滤information_schema库的绕过,sqllib-46关,海洋cms9版本的注入)