JavaScript-对象基本用法与创建方法

js在指定位置插入数据 js指定插入位置:鼠标定在某位置,将指定的值插入指定的位置 立即下载

this.job = job
this.sayName = function() {
console.log(this.name) }
}
var person1 = new Person(‘Jiang’, ‘student’)
var person2 = new Person(‘X’, ‘Doctor’)

没有显示的创建对象,使用new来调用这个构造函数,使用new后会自动执行如下操作

  • 创建一个新对象
  • 这个新对象会被执行[[prototype]]链接
  • 这个新对象会绑定到函数调用的this
  • 返回这个对象

缺点:使用构造函数创建对象,每个方法都要在每个实例上重新创建一次。

原型模式

function Person() {
}
Person.prototype.name = ‘Jiang’
Person.prototype.job = ‘student’
Person.prototype.sayName = function() {
console.log(this.name)
}
var person1 = new Person()

将信息直接添加到原型对象上。使用原型的好处是可以让所有的实例对象共享它所包含的属性和方法,不必在构造函数中定义对象实例信息。

缺点:原型中所有属性实例是被很多实例共享的,这种共享对于函数非常合适。对于那些包含基本值的属性也勉强可以,毕竟实例属性可以屏蔽原型属性。但是引用类型值,就会出现问题。

组合使用构造函数模式和原型模式

这是使用最为广泛、认同度最高的一种创建自定义类型的方法。它可以解决上面那些模式的缺点。使用此模式可以让每个实例都会有自己的一份实例属性副本,但同时又共享着对方法的引用;

function Person(name) {
this.name = name
this.friends = [‘Shelby’, ‘Court’]
}
Person.prototype.sayName = function() {
console.log(this.name)
}
var person1 = new Person()
var person2 = new Person()
person1.friends.push(‘Van’)
console.log(person1.friends) //[“Shelby”, “Court”, “Van”]
console.log(person2.friends) // [“Shelby”, “Court”]
console.log(person1.friends === person2.friends) //false

动态原型模式

动态原型模式将所有信息都封装在了构造函数中,初始化的时候,通过检测某个应该存在的方法时候有效,来决定是否需要初始化原型

function Person(name, job) {
// 属性
this.name = name
this.job = job

// 方法
if(typeof this.sayName !== ‘function’) {
Person.prototype.sayName = function() {
console.log(this.name)
}
}
}
var person1 = new Person(‘Jiang’, ‘Student’)
person1.sayName()

只有在sayName方法不存在的时候,才会将它添加到原型中。这段代码只会初次调用构造函数的时候才会执行。

此后原型已经完成初始化,不需要在做什么修改了,这里对原型所做的修改,能够立即在所有实例中得到反映。

寄生构造函数模式

这种模式的基本思想就是创建一个函数,该函数的作用仅仅是封装创建对象的代码,然后再返回新建的对象。

function Person(name, job) {
var o = new Object()  
o.name 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 = name 
o.job = job
o.sayName = function() {
console.log(this.name)  
}
return o
}
var person1 = new Person(‘Jiang’, ‘student’) 
person1.sayName()

这个模式,除了使用new操作符并把使用的包装函数叫做构造函数之外,和工厂模式几乎一样。

构造函数如果不返回对象,默认也会返回一个新的对象,通过在构造函数的末尾添加一个return语句,可以重写调用构造函数时返回的值。

稳妥构造函数模式

首先明白稳妥对象指的是没有公共属性,而且其方法也不引用this。

稳妥对象最适合在一些安全环境中(这些环境会禁止使用this和new),或防止数据被其他应用程序改动时使用。

稳妥构造函数模式和寄生模式类似,有两点不同:一是创建对象的实例方法不引用this,而是不使用new操作符调用构造函数。

function Person(name, job) {
var o = new Object()
o.name = name
o.job = job
o.sayName = function() {
console.log(name)
} 
return o
}

Spirent TestCenter 3.90吞吐测试全流程详解(附RFC 2544配置避坑指南) 本文详细解析了使用Spirent TestCenter 3.90进行网络吞吐测试的全流程,并提供了符合RFC 2544标准的配置指南与避坑要点。内容涵盖测试环境搭建、核心概念澄清、STC软件配置步骤、结果深度解读以及自动化脚本入门,旨在帮助网络测试工程师精准评估设备性能,规避常见配置陷阱。 阅读详情

相关推荐

统信UOS下获取root权限的两种姿势:图形化开启开发者模式 vs 命令行直接提权

本文详细解析了统信UOS下获取root权限的两种方法:通过图形界面永久开启开发者模式和使用命令行临时提权。开发者模式适合系统级开发,提供完整root权限但降低安全性;临时提权则更灵活,适合日常管理任务。文章还对比了两种方案的优缺点,帮助用户根据需求选择最佳权限管理策略。

weixin_30266885的博客 515

JavaScript基础-内置对象使用

帮助大家简单理解js的内置对象的使用

rolanannn的博客 183

如何在huggingface上申请下载使用llama2/3模型

huggingface-cli download --resume-download 模型名称 --local-dir 存放模型的位置 --local-dir-use-symlinks False --resume-download --token token序列号xxxxxxx。登录huggingface,在模型详情页面上,找到这个表单,填写内容,提交申请。需要使用梯子,country填写梯子的位置吧(比如美国)等待一小时左右,会有邮件通知。

a61022706的博客 1万+

js 在对象下的数组里添加值

【代码】js 在对象下的数组里添加值。

weixin_45865992的博客 393

Python与Wind量化接口实战:从配置到数据提取全流程解析

本文详细解析了Python与Wind量化接口的实战应用,从环境配置到数据提取全流程。通过Anaconda管理Python环境,安装WindPy接口,实现历史行情、截面数据和实时行情的查询与优化。文章还提供了高级功能如批量查询、数据缓存策略及实战案例,帮助开发者高效构建量化分析框架。

omega的博客 1327

iOS反编译-hook微信之艾特所有人

all。

2501_90243249的博客 759

JavaScript--往对象里面添加数据

方法一: 直接添加 let obj = { name: 'sun' }; // [] let key = 'age'; let value = 18; obj[key] = value; // . obj.age = 18; console.log(obj, 'obj'); // {name: 'sun', age: 18} 'obj' 方法二: 利用扩展运算符… let objName = { na

小太阳的博客 1万+

快速理解STLink引脚图中复位引脚作用

深入讲解STLink引脚图中复位引脚的实际用途,帮助开发者快速掌握其在调试与下载过程中的关键作用,结合stlink引脚图理解更高效。

weixin_32324637的博客 1326

数组和对象添加数据

数组和对象添加数据

weixin_68658847的博客 1628

k3s cpu load 和 cpu 使用率很高处理

在这期间还执行过缩减 sqlite3 数据库操作,不知道是哪个操作起了作用,亦或者两个操作有影响,删除 ns 促进了数据库缩减的执行(没删除之前数据库缩减不成功,db文件大小未减小,但不确定是不是执行完 VACUUM 之后需要时间 db 文件才会减小,或者是因为删除了 ns 才导致其减小),再或者是两个操作都起了作用。kubectl get ns 发现有很多卡在删除状态的 ns。k3s 官网关于这个问题的谈论。执行如下脚本删除掉这些 ns。有人详细说过这个问题。

weixin_40548182的博客 683

2026年国赛C题微网与外部电网电力调控策略 (三):问题三、问题四滚动预测、实时电价与结果核验

专栏内定期更新ABCDE五题详细思路、代码(含运行结果图)和讲解视频-(11号之前半价):问题三看起来只是多给了一个光伏预报附件,实质上它改变了整道题的信息结构:问题四则是在问题二、问题三之上替换价格来源。问题4-2相当于“确定性计划+实时电价”,问题4-3相当于“滚动预测+实时电价”。物理模型完全不变,改变的是价格序列和费用口径。本文先给出核心结果:从结果看,问题3比问题2多约164.21万元,问题4-3比问题4-2多约168.79万元。主要增量不是“储能没有工作”,而是预测误差、计划偏差和紧急购电造成的

YOLO 343

js中对象进行赋值操作的几种方式

在上面的例子中,我们使用了JSON的parse和stringify方法对原对象进行深拷贝,并将新对象赋值给了newObj。浅拷贝是指将一个对象的属性值复制到另一个对象中,如果属性值是引用类型,那么只是复制了它的引用地址,而原对象和新对象的引用指向了同一个地址。深拷贝是指复制一个对象及其对象的所有子对象的值,并将它们都复制到一个新对象中,这样原对象和新对象没有任何关联,修改新对象中的属性不会影响原对象。展开运算符可以将一个对象中的所有属性展开,并将它们作为新对象的属性,从而实现对象的赋值。

Liuliu_x的博客 1万+

卫朋:IPD流程落地之产品开发验证阶段解读

IPD验证阶段

产品线负责人 1487

JavaScript 对象基本用法与创建方法

xxx’ in obj 返回的bool值可以确认’xxx’是否在obj中;obj.xxx === undefined 不能断定’xxx’是否为obj中的属性。其中第二点的原因是,对象中的属性值可以是undefined,而当对象中不存在某属性时,输入第二点的代码也会返回undefined,所以无法判定。查看所有属性名:Object.keys(xxx)查看自身和共有属性:console.dir(xxx)判断属性为自身还是共有属性:obj.hasOwnProperty(‘xxx’)

2501_90250970的博客 887

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript 对象基本用法与创建方法,【最新】

面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

2401_83973995的博客 692

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaScript-对象基本用法与创建方法,含面试题+答案

前端CSS面试题文档,JavaScript面试题文档,Vue面试题文档,大厂面试题文档,需要的读者可以戳这里免费领取!的读者可以戳这里](https://bbs.csdn.net/topics/618191877)免费领取!**[外链图片转存中…(img-Vw5V3N3H-1712117925171)][外链图片转存中…(img-2h5XDCOj-1712117925171)]

2401_84092694的博客 752

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

js对象转数组,以及js对象常见方法和使用技巧

js对象使用 <script> //js对象是一种无序的集合 {}表示 var obj={ name:"张三", age:18 } //取值 console.log(obj.name)//张三 console.log(obj["name"])/...

梧桐落叶~~ 743

JS对象

前言 学习前端的时候老师一再强调:js里万物皆对象 看一段代码console.log(Function instanceof Object),console.log(Object instanceof Function)输出都是true,Object和Function互为实例 一、 基本用法 创建空对象: var obj = {}或者var obj = new Object() 创建实例对象:(...

哪吒的小橘猫 306

JavaScript对象创建

1.直接创建对象 var 对象变量名称 = new Object(); 对象变量名称.属性名称 = 值; 对象变量名称.方法名称 = function(参数列表){ ​ 函数体 } 对象变量名称.属性名称; 对象变量名称.方法名称(参数); //1.对象的创建 var person = new Object();//创建对象实例 //2.给对象添加属性 person.name = "张三"; person.age = 20; //3.给对象添加方法 person.abc

青柠小甜味 151

JavaScript中对对象(Object)的基础用法

今天看代码的时候,发现在js中对对象的一些基本使用还有欠缺,来补补基础写下这篇笔记。在 JavaScript 中,对象是一种无序的数据集合,它由键值对组成。下面是在js中对对象常见用法和方法的介绍。

qq_61709335的博客 1256

JS 创建对象的方法

Js 尚硅谷 网课笔记 创建对象的方法

broeg的博客 183

JavaScript 使用对象字面量创建对象、使用new Object创建对象

前言: 一、使用对象字面量创建对象 对象字面量: 就是花括号{ }里面包含了表达这个具体事物(对象)的属性和方法。 { }里面采取键值对的形式表示 键:相当于属性名 值:相当于属性值,可以是任意类型的值(数字类型,字符串类型,布尔类型,函数类型等) 演示代码如下,注释已经在代码中给出 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title>

路宇的博客 5677

javascript中的数组与对象基本操作及underscore.js

文章目录数组与对象数组创建数组数组的常用方法高阶函数map()reduce()filter()sort()对象创建对象访问/创建对象中的键值对underscore 数组与对象 数组与对象是javascript中最重要的数据结构,使用好它们,就可以非常灵活的处理各种数据了,因此需要好好的掌握这些它们的一些方法。 数组 创建数组 //创建一个空数组 var arr = new Array() //创建...

qq_35696312的博客 559

JS对象的基本概念

1.什么是对象 在js中数据大概分为两种数据,基本数据和引用数据。 基本数据有:num、string、undefined、null、boolean五大基本数据 引用数据有:函数、对象、数组等 所以 在js中对象就是一种引用数据,但是数组、函数等也可以称为一种特殊的对象,所以在js中除了五大基础数据,其他几乎都是对象。 2.创建对象的方法 2.1 直接声明一个对象 var obj = { name:"jack", high:"185"

qq_64067728的博客 2097

知识总结 JavaScript【对象】

JavaScript 对象知识点总结

zx2014567296的博客 427
上一篇: javascript-中数据类型那些可能会中招的细节_web前端
下一篇: 小白要怎么自学Java?看看过来人是怎么说的
宇小哥
博客等级 码龄5年 4粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值