【前端】JavaScript入门及实战66-70

文章目录

  • 66 原型(1)
  • 67 原型(2)
  • 68 toString
  • 69 垃圾回收
  • 70 数组

66 原型(1)

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">/*原型prototype我们所创建的每一个函数,解析器都会向函数添加一个属性prototype,这个属性对应着一个对象,这个对象就是所谓的原型对象如果函数作为普通函数调用prototype没有任何作用,当函数以构造函数的形式调用时,他所创建的对象中都会有一个隐含的属性,指向该构造函数的原型对象,可以通过__proto__来访问该属性		原型对象就相当于一个公共的区域,所有同一个类的实例都可以访问到这个原型对象,我们可以将对象中共有的内容,统一设置到原型对象中当我们访问对象的一个属性或方法时,会先在自身寻找,如果有则直接使用,如果没有则去原型对象中寻找,如果找到则直接使用以后我们创建构造函数时,可以将这些对象共有的属性和方法,统一添加到构造函数的原型对象中,这样不用分别为每一个对象添加,也不会影响到全局作用域,就可以使每个对象都具有这些属性和方法了*/	function Person(){}function MyClass(){}console.log(MyClass);console.log(Person.prototype); // objectconsole.log(MyClass.prototype); // objectconsole.log(Person.prototype == MyClass.prototype); // false// 向MyClass的原型中添加属性aMyClass.prototype.a = 123;	// 向MyClass的原型中添加一个方法MyClass.prototype.sayHello = function(){alert("hello");};var mc = new MyClass();console.log(mc.a); // 123// 向mc中添加a属性mc.a = "我是mc中的a";var mc2 = new MyClass();console.log(mc.__proto__);console.log(mc.__proto__ == MyClass.prototype); // truemc.sayHello(); // 执行alert("hello");
</script>
<style>
</style>
</head>
<body>
</body>
</html>

67 原型(2)

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">/*创建一个函数*/	function MyClass(){}// 向MyClass原型中添加一个name属性MyClass.prototype.name = "我是原型中的名字";var mc = new MyClass();mc.age = 18;// 使用in检查对象中是否含有某个属性时,如果对象中没有但是原型中有,也会返回trueconsole.log("name" in mc); // true// 可以使用对象的hasOwnProperty()来检查对象自身中是否含有该属性// 使用该方法只有当对象自身中含有该属性时,才会返回truemc.hasOwnProperty();console.log(mc.hasOwnProperty("age")); // trueconsole.log(mc.hasOwnProperty("hasOwnProperty")); // false,hasOwnProperty()在原型中?console.log(mc.__proto__.hasOwnProperty("hasOwnProperty")); // false/*原型对象也是对象,所以他也有原型,当我们使用一个对象的属性或方法时,会先在自身中寻找,自身中如果有,则直接使用,如果没有则去原型对象中寻找,如果原型对象中有,则使用,如果没有则去原型的原型对象中寻找,直到找到Object对象的原型,Object对象的原型没有原型,如果在Object中依然没有找到,则返回undefined*/console.log(mc.__proto__.__proto__.hasOwnProperty("hasOwnProperty")); // trueconsole.log(mc.__proto__.__proto__.__proto__); // null
</script>
<style>
</style>
</head>
<body>
</body>
</html>

68 toString

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">function Person(name, age, gender){this.name = name;this.age = age;this.gender = gender;}Person.prototype.toString = function(){return "name = " + this.name + ",age = " + this.age",gender =" + this.gender;};	// 创建一个Person实例var per = new Person("孙悟空", 18, "男");// 当我们直接在页面中打印一个对象时,实际上是输出对象的toString()方法的返回值// 如果我们希望在输出对象时不输出[object object],可以为对象添加一个toString()方法// Person[name = 孙悟空, age = 18, gender = 男]per.toString = function(){//return "我是一个小Person";return "name = " + this.name + ",age = " + this.age",gender =" + this.gender;};var res = per.toString();console.log(res); // [object object] // "我是一个小Person"console.log(per); // [object object] // "我是一个小Person"console.log(per.__proto__.__proto__.hasOwnProterty("toString")); // true</script>
<style>
</style>
</head>
<body>
</body>
</html>

69 垃圾回收

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">/*垃圾回收(GC)就像人生活的时间长了会产生垃圾一样,程序运行过程中也会产生垃圾,这些垃圾积攒过多以后,会导致程序运行的速度过慢,所以我们需要一个垃圾回收的机制,来处理程序运行过程中产生垃圾当一个对象没有任何的变量或属性对他进行引用,此时我们将永远无法操作该对象,此时这种对象就得一个垃圾,这种对象过多会占用大量的内存空间,导致程序运行变慢,所以这种垃圾我们必须进行清理在JS中拥有自动的垃圾回收机制,会自动将这些垃圾对象从内存中销毁,我们也不需要也不能进行垃圾回收的操作我们需要的做的只是将不再使用的对象设置为null即可*/var obj = new Object();// 对对象进行各种操作。。。obj = null;
</script>
<style>
</style>
</head>
<body>
</body>
</html>

70 数组

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset = "utf-8">
<script type="text/javascript">/*内建对象宿主对象自定义对象数组(Array)数组也是一个对象它和我们普通对象功能类似,也是用来存储一些值不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引来操作元素索引:从0开始的整数就是索引数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据*/// 创建数组对象var arr = new Array();// 使用typeof检查一个数组时,会返回objectconsole.log(typeof arr);/*向数组中添加元素语法:数组[索引] = 值*/arr[0] = 10;arr[1] = 12;arr[2] = 22;console.log(arr); // 10, 12, 22arr[100] = 99;/*读取数组中的元素语法:数组[索引]如果读取不存在的索引,不会报错,而是返回undefined*/console.log(arr[0]);console.log(arr[3]); // undefined/*获取数组的长度可以使用length属性来获取数组的长度(元素个数)语法:数组.length对于连续的数组,使用length可以获取到数组的元素(元素个数)对于非连续的数组,使用length会获取到数组最大的索引 + 1尽量不要创建这种非连续的数组*/console.log(arr.length); // 101/*修改length如果修改的length大于原长度,则多出的部分会空出来如果修改的length小于原长度,则多出的元素会被删除*/arr.length = 10;console.log(arr);// 向数组的最后一个位置添加元素// 语法:数组[数组.length] = 值;arr[arr.length] = 70;	
</script>
<style>
</style>
</head>
<body>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/48774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux网络:传输层协议TCP(二)三次挥手四次握手详解

目录 一、TCP的连接管理机制 1.1三次握手 1.2四次挥手 二、理解 TIME_WAIT 状态 2.1解决TIME_WAIT 状态引起的 bind 失败的方法 三、理解CLOSE_WAIT状态 一、TCP的连接管理机制 在正常情况下, TCP 要经过三次握手建立连接, 四次挥手断开连接 1.1三次握手 三次握手顾名思…

Docker从零开始:安装、部署到卸载,一文搞定全流程

Docker是一种开源容器化平台&#xff0c;它允许开发者将应用程序及其依赖打包成轻量级、可移植的容器。这些容器能确保软件在任何环境中稳定运行&#xff0c;无论是开发者的笔记本电脑还是生产服务器。Docker流行的原因在于其提供的隔离性、可移植性和可扩展性&#xff0c;它简…

2024年展望:人工智能领域将呈现怎样的发展趋势?

2024年&#xff0c;人工智能&#xff08;AI&#xff09;领域将继续保持强劲的发展势头&#xff0c;并呈现出多个重要的发展趋势。以下是对该领域未来发展趋势的详细展望&#xff1a; 一、技术创新与融合 多模态生成式AI的崛起&#xff1a; 多模态生成式AI系统能够处理文本、声…

C# 将字符串数组以树型结构化

例如字符串数组&#xff1a; string[] arr { "1","3-4-5-6-7", "2","3-4","3-4-5","3-4-5-6", "3", "6", "4", "6-1", "6-2", "5", "6-1-1&…

李艳波医生怎么挂号?

对于想要预约李艳波医生的患者来说&#xff0c;北京仁爱堂提供了两种便捷的预约方式&#xff1a;来院面诊和视频会诊。来院面诊是传统的就诊方式&#xff0c;患者可以直接前往仁爱堂&#xff0c;与李艳波医生面对面交流&#xff0c;详细了解自己的病情并接受专业的治疗建议。这…

LangChain自定义Embedding封装 之 ERNIE Bot

LangChain自定义Embedding封装 之 ERNIE Bot 百度飞浆平台的 ERNIE Bot 导入下面方法 和 环境 &#xff0c;即可验证 embedding ERNIE_Bot_embedding() class ERNIE_Bot_embedding(BaseModel, Embeddings):client: Anyroot_validator()def validate_environment(cls, value…

解决Github Copilot无效,无法使用的问题

如果是在Copilot的终端报错 Invalid copilot token: missing token: 403 原因有三种 1&#xff0c;你的账号没有订阅正版的服务&#xff0c;解决办法是购买正版服务 2&#xff0c;你在购买服务的时候&#xff0c;Github上 billing information 地址信息和支付卡片的地址信息不…

Amazon Bedrock基础指南:参考资料、模型特点、价格、使用方法及运行时API执行示例

这次我整理了2023年9月28日正式发布的Amazon Bedrock的基本信息和Runtime API的执行示例。此外&#xff0c;还在文中插入了最基本的术语解释&#xff0c;以帮助理解令牌和参数的概念。 ※本文及其他由本文作者发表的文章中所包含的源代码均为自主研究活动的一部分。如需使用&am…

关卡1-3:Git

关卡1-3&#xff1a;Git Git基础fork并拉取本次课程的源创建一个gitee自己的仓库 这个是internLM的3期训练营的通关笔记。 任务&#xff1a; 熟悉git熟悉使用git托管平台&#xff0c;常见有github、giteefork官方的训练营的教程项目&#xff0c;提交文件到自己的项目&#xf…

项目部署到服务器

(相关资源都给出来了) 1 下载MobaXterm,然后打开 正常连接输入你的服务器IP&#xff0c;用户名可以起名为root 2 将JDK,Tomcat,mysql安装包 布置到服务器中&#xff08;JDK官网地址&#xff1a;https://www.oracle.com/java/technologies/downloads/#java8 mysql官网地址: …

openGauss触发器详解

openGauss 是一款开源关系型数据库管理系统&#xff0c;广泛应用于企业级应用中。随着数据量的增长和业务逻辑的复杂化&#xff0c;数据库管理和操作的自动化需求越来越高。触发器&#xff08;Triggers&#xff09;作为数据库中重要的编程工具&#xff0c;能够极大地简化复杂操…

【python】OpenCV—Point Polygon Test

文章目录 1、完整代码2、涉及到的库cv2.pointPolygonTestcv2.minMaxLoc 1、完整代码 from __future__ import print_function from __future__ import division import cv2 as cv import numpy as np # Create an image r 100 src np.zeros((4*r, 4*r), dtypenp.uint8) # 创…

3 Go语言的变量声明

本专栏将从基础开始&#xff0c;循序渐进&#xff0c;由浅入深讲解Go语言&#xff0c;希望大家都能够从中有所收获&#xff0c;也请大家多多支持。 查看相关资料与知识库 专栏地址:Go专栏 如果文章知识点有错误的地方&#xff0c;请指正&#xff01;大家一起学习&#xff0c;…

前端学习3——自学习梳理

1.学习一下盒子模型(盒子就是元素&#xff0c;标签) 盒子模型又分为4种&#xff1a;块级&#xff0c;内联级&#xff0c;内联块级&#xff0c;弹性盒子 (弹性盒子续在下一节) 2.元素的结构 1.盒子模型 <!DOCTYPE html> <html lang"en"> <head>&l…

【嵌入式开发 Linux 常用命令系列 7.7 -- find 和 sed 配合使用介绍】

请阅读【嵌入式及芯片开发学必备专栏】 文章目录 使用背景注意事项使用示例 使用背景 当时想在 linux 环境下 使用 find 命令找到 .c 和 .h 文件&#xff0c;并使用xargs 加 sed 命令将文件中所有"demo" 字符串替换为 “hello” 命令实现&#xff1a; 使用 find 命…

【C++杂货铺】智能指针

目录 &#x1f308; 前言&#x1f308; &#x1f4c1; 内存泄漏 &#x1f4c2; 概念 &#x1f4c2; 分类 &#x1f4c2; 如何避免 &#x1f4c1; RAII &#x1f4c1; C11智能指针 &#x1f4c2; auto_ptr &#x1f4c2; unique_ptr &#x1f4c2; shared_ptr &#x1…

电子电器架构 --- 智能汽车的大脑(域控制器)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

QT--进程

一、进程QProcess QProcess 用于启动和控制外部进程&#xff0c;管理其输入输出流。 使用方法 start()&#xff1a;启动一个新进程。setStandardInputFile()&#xff1a;将文件作为标准输入。将进程的标准输入&#xff08;stdin&#xff09;重定向到指定的文件。换句话说&am…

AV1技术学习:Constrained Directional Enhancement Filter

CDEF允许编解码器沿某些(可能是倾斜的)方向应用非线性消阶滤波器。它以88为单位进行。如下图所示&#xff0c;通过旋转和反射所示的三个模板来定义八个预设方向。 Templates of preset directions and their associated directions. The templates correspond to directions of…

筑牢数字防线:从微软蓝屏事件看网络安全与系统韧性建设

引言 近期&#xff0c;由微软视窗系统软件更新引发的全球性“微软蓝屏”事件&#xff0c;不仅给全球用户带来了前所未有的挑战&#xff0c;也深刻暴露了当前IT基础设施在面对潜在威胁时的脆弱性。此次事件&#xff0c;如同一面镜子&#xff0c;映照出我们在网络安全与系统稳定…