千家信息网

JS中Object对象的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,小编给大家分享一下JS中Object对象的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对象概念在 javascr
千家信息网最后更新 2026年10月31日JS中Object对象的示例分析

小编给大家分享一下JS中Object对象的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

对象概念

在 javascript 中, 一切引用类型均为对象。 如 function Foo () {} 中,Foo本身就是一个对象的引用。

创建对象方式 字面量方式 new 构造函数函数声明 Object.create

字面量对象

javascript语言级别快速创建对象的实例

var obj = {foo: 'foo', bar: 'bar'}; // Object对象字面量var obj2 = [obj, 'foo', 'bar']; // Array数组字面量var obj3 = /^[a-zA-Z0-9]$/; // RegExp正则字面量var obj4 = function(){}; // Function函数字面量

new 构造函数

通过内置对象的构造函数,或者自定义的函数。 使用 new 操作符,创建一个对象,并且执行构造函数方法。

var obj = new Object();var obj2 = new Array(1000);var obj3 = new RegExp('^[a-zA-Z0-9]$');var obj4 = new Function('a', 'b', 'return a + b;');

函数声明

函数声明创造的对象. 函数属于特殊的对象.

function Foo() {}Foo instanceof Object;Foo instanceof Function;

Object.create

传入一个对象作为返回对象的原型,创建一个新对象, 并将新对象的原型指向传入的对象中。

var foo = { 'foo': 'foo', 'bar': 'bar'};var o = Object.create(foo); // o.__proto__ = fooconsole.log(o.foo); // o.__proto__.foo

使用Object.create(null) 可以返回一个字典型对象.

var o = Object.create(null);o instanceof Object; // return false;o.toString(); // Uncaught TypeError

对象原型

每一个对象都有一个内置的 __proto__ 属性指向构造它的函数prototype属性. 而构造函数的

prototype.constructor 则指向构造函数本生。一个对象的属性的寻找过程由以下几个部分组成:

寻找对象属性的数据描述符(writable, value)或存取描述符(getter, setter),如果查询到了,则返回 对应的值。如果查询不到,则进入第2步骤。寻找对象属性的值是否有被显示定义 (可以通过 Object.getOwnPropertyNames)检测,如果对象属性定义了,则返回定义的值。 如果没有,则进入第3步骤。寻找对象的隐藏原型__proto__对象的属性,规则同1,2步骤。如果还未找到,则重复第3步骤, 直到__proto__ 为null 为止。

具体案例如下图所示:

检测对象原型

测试一个对象在其原型链中是否存在一个构造函数的 prototype 属性

instanceof Object.prototype.isPrototypeOf

instanceof

运算符,语言级别的检测对象的原型链是否包含构造函数的原型

function Foo () {}Foo instanceof Function; // return trueFoo instanceof Object; // return true

模拟instanceof查找对象的原型链的构造函数是否包含传入的构造函数, __proto__ 在一些特定的浏览器有暴露给用户

function Bar () {}function isInstanceof (obj, Constructor) { if (obj === null) { return false; } // 忽略 string, number, boolean, null, undefined 类型干扰 if (!~['object', 'function'].indexOf(typeof obj)) { return false; } var prototype = obj.__proto__; while(prototype) { if (prototype.constructor === Constructor) {  return true; } prototype = prototype.__proto__; } return false;}isInstanceof(Bar, Function);isInstanceof(Bar, Object);

isPrototypeOf

构造函数的原型对象自带的函数属性, 用于检测目标对象的原型链中是否存在构造函数的原型对象。

function Baz () {}var baz = new Baz();Baz.prototype.isPrototypeOf(baz);Function.prototype.isPrototypeOf(baz);Object.prototype.isPrototypeOf(baz);

获取对象原型 Object.getPrototypeOf __proto__

var o = {};var prototype = Object.getPrototypeOf(o);console.log(prototype === Object.prototype); // return true// 部分浏览器有效var o2 = {};console.log(o2.__proto__ === Object.prototype); // return true

设置对象原型 Object.create Object.setPrototypeOf

Object.create

返回一个对象,并设置它的原型

function Foo () {} function Bar () {} Foo.prototype.foo = 'foo'; Bar.prototype = Object.create(Foo.prototype);  Bar.prototype.constructor = Bar; // 修正原型链的constructor var o = new Bar(); console.log(o.foo); // return foo; console.log(o instanceof Bar); // return true

Object.setPrototypeOf

直接设置对象的隐式原型__proto__

function Foo () {} Foo.prototype.name = 'foo'; var o = Object.create(null); Object.setPrototypeOf(o, Foo.prototype); console.log(o.name); // return foo

以上是"JS中Object对象的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

对象 函数 原型 属性 字面 步骤 检测 指向 篇文章 示例 分析 内容 方式 浏览器 类型 级别 语言 查询 浏览 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 重生之互联网科技帝国 互联网科技有限公司图片 关于新基建和互联网科技 奇酷互联网科技公司 易通互联网络科技有限公司 火传媒上海互联网科技 互联网科技论坛 互联网科技大会案例 佩信高科技互联网 老年人脱离互联网科技的作文 允成互联网科技有限公司融资 深圳艾果互联网通讯科技 阿里互联网科技企业 山东星卡互联网科技有限公司官网 互联网领先科技宣传片 上海创道互联网络科技有限公司 盐城市攀科互联网科技有限公司 知域互联网科技有限公司官网 如何强化互联网金融科技 亿人帮互联网科技有限公司 互联网科技社 万易互联网科技 恒生科技互联网指数分析 开一家科技互联网公司需要多少钱 深圳艾果互联网通讯科技 互联网公司高科技产品 工业互联网科技创业 银川新华互联网科技学校是国营吗 互联网科技职业技能培训学校
0