JS(十二)对象,包装类(下)

js基础:10、函数对象方法(call/apply)、arguments类数组对象、Date对象、Math工具类、包装类、字符串方法、正则表达式 JavaScript核心概念摘要(145字): 本文介绍了JavaScript中的核心对象与方法:1)函数对象的call()/apply()方法用于改变this指向;2)arguments类数组对象存储实参,含length属性和callee引用;3)Date对象处理日期时间,包括getDate()、getDay()、getMonth()等方法及时间戳概念;4)Math工具类提供数学计算功能;5)包装类实现基本类型到对象的转换;6)字符串常用操作方法;7)正则表达式进行模式匹配。重点解析了函数调用时this的 阅读详情

写在最前面

构造函数内部原理

  • 在函数体最前面隐式的加上this = {}
  • 执行this.xxx = xxx
  • 隐私的返回this
function Student(name,age,sex){
    //第一步 在函数体最前面隐式的加上this = {}
    //var this = {};
    //AO{this:{
    //    name:"",
    //    age :
    //}}
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.grade = 2017;
    //最后一步隐私的返回this
    //return this;
}
//前提是new
var student = new Student('zhangsan',18,'male');
function Person (name,height){
    //var this ={}; 
    this.name = name;
    this.height = height;
    this.say = function(){
        console.log(this.say);
    }
}

//一旦new Person();
//里面就有个var this = {};

console.log(new Person('xiaowu',180).name);
//打印xiaowu
//我们既然知道有了隐私的三步那我们来模拟一下
function Person(name,height){
    var that = {};
    that.name = name;
    that.heigth = heigth;
    return that;
}
var person = Person("xiaowu",180);
var person1 = Person("xiaozhao",170);

//也可以简单的模拟一下

包装类
var num = 123;
//这个是个原始值.原始值是不能有属性和方法的.

那么数字都是是原始值?

不对,只有原始值数字才是原始值

var num = new Number(123);
//打印出来是Number{[[PrimitiveValue]]:123}
//对象的形式返回
//也可以增加属性
num.abc = "a";
console.log(num.abc)//打印出来a
//在num,就看到在num里面多了num.abc里面的属性
//但是它也可以计算
num*2 == 246;

String 和boolean也是一样的

小知识

undefined 和null不能有属性

var num = new Number(123);
var bol = new boolean("true");
var str = new String('abcd');

结论 : 原始值不能说属性和方法,对象才可以有

那么我来看看下面的例子

var str = "abcd";
str.length//打印出来4

为什么这个原始值的长度可以访问,但是明确又规定了原始值是没有属性和方法的

str.abc = "a";

上面我们试着给str附上属性和属性值,结果没有报错,然后我们访问这个属性,也没有结果。

原始值是不会有方法的,但是他为什么能调用呢,因为他经历了一个过程,叫包装类。

var str = "String";

str.length = 6;
//为什么可以 因为在执行方法的时候,电脑隐式的给你 new Numbar(str)
//之后在str.length = 6
//执行完之后在给你销毁掉delete
//以上就是包装类

可以关注一下

js系列十二:this对象 前面我们已经讲过,当函数被调用执行时,变量对象会生成,这个时候,this 的指向会确定。因此首先要牢记一个重要的结论,当前函数的 this 是在函数被调用执行时才会确定的。如果当前的执行上下文处于函数调用栈的栈顶,那么这个时候变量对象会变成活动对象,同时 this 的指向确定。 正是由于这个原因,才导致一个函数内部的 this 到底指向谁是非常灵活并且不确定的,这也是 this 难以被正真理解的原... 阅读详情

相关推荐

面向对象的JavaScript包装类

自己封装的一个面向对象的JavaScript类。

js包装类

js包装类

qq_42284274的博客 686

【社区分享】从零开始学习 TinyML,建立 TensorFlow 深度学习模型(技术优化篇)

本文来自社区投稿与征集,作者王玉成,ML&IoT Google Developers Expert,温州大学智能锁具研究院总工程师。 了解更多:https://blog.youkuaiyun.com/wfing 经过前面几章的讨论,我们了解了TinyML 的概念,完成了一个最简单的TinyML 的模型并且运行在微控制器上,得出最基本的结果。但是在实际的工程应用中,模型建立之后,也需要再进一步结合许多优化方面的技术,这就是我们接下来想要探讨的。 5. 优化 TinyML 这本书也详细的向我...

tensorflowforum的博客 1万+

JS-包装类

js包装类

优快云LFF的博客 1286

别再被无限debugger卡住了!Chrome DevTools实战绕过技巧(含Hook与文件替换)

本文详细介绍了如何通过Chrome DevTools绕过无限debugger封锁的实战技巧,包括Hook技术与文件替换方法。针对常见的定时器轰炸、循环陷阱和动态注入等反调试手段,提供了高效的解决方案,帮助开发者快速突破调试障碍,提升爬虫和逆向工程效率。

weixin_30326515的博客 242

欧拉 openEuler 20.03安装配置tigervnc-server

欧拉 openEuler 20.03安装配置tigervnc-server openEuler VNC

郭亚望 8954

JS中【包装类】详解

JavaScript中的包装类为基本数据类型提供了对象的方法和属性,通过自动装箱的机制,使得我们可以直接对基本类型调用方法。在大多数情况下,开发者并不需要手动创建包装类对象,因为JavaScript会自动处理装箱和拆箱操作。然而,理解包装类的存在和其背后的机制,对于编写高效、可维护的JavaScript代码是非常重要的。系统内部通过自动装箱实现了对基本类型的对象化处理,这个过程对开发者透明,简化了代码的编写。但在性能敏感的场景下,避免不必要的包装对象是一个好的实践。

2301_79858914的博客 1183

手把手教你用ArduPilot搭建低成本无人车(附APM飞控+有刷电调配置清单)

本文提供了一份基于ArduPilot开源平台搭建低成本智能无人车的详细实战指南。核心内容包括APM架构飞控的选型、双向有刷电调的兼容性配置与校准、系统连接逻辑,以及通过Mission Planner地面站进行参数调校和自主导航功能设置的完整流程,帮助爱好者快速实现从手动控制到自主行驶的跨越。

java5的博客 851

javascript的基本包装类型

为了方便操作基本数据类型,js提供了三个特殊的引用类型,String、Number和Boolean。基本包装类型就是把简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法。

weilaaer的博客 740

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2462

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

努力,加油每一天鸭~ 826

JS中的包装类

String --> 字符串包装为String对象Number --> 数值包装为Number对象Boolean --> 布尔值包装为Boolean对象BigInt --> 大整数包装为BigInt对象Symbol --> 符号包装为Symbol对象通过包装类可以将一个原始值包装为一个对象, 当我们对一个原始值调用方法或属性时,JS解释器会临时将原始值包装为对应的对象,然后调用这个对象的属性或方法。这也就是为什么number,string这些基本类型也有属性和方法的原因。

2301_77156888的博客 1309

C#图像处理:OpenCVSharp实现简单人脸识别

人脸识别是计算机视觉领域中的一个重要研究方向,它可以通过分析和比对人脸图像,实现识别和验证的功能。希望通过这篇文章的学习,你对OpenCVSharp和人脸识别有了初步的了解,并能够运用这些知识进行自己的项目开发。当我们运行程序时,它会加载人脸识别模型并读取待识别的图像,然后进行人脸检测并在图像上标记出检测到的人脸位置。当然,这只是一个入门级的示例,实际的人脸识别系统还需要更加复杂的算法和大量的训练数据来提高准确性和鲁棒性。最后,我们遍历检测到的人脸,并在原始图像上绘制矩形框,标记出检测到的人脸位置。

WELL_CODER的博客 1129

JavaScript的内置类

【代码】JavaScript的内置类。

qq_42535142的博客 1027

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 449

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

十二、JavaScript面向对象(上) - 章节课后练习题及答案

JavaScript面向对象(上) - 章节课后练习题及答案,使用的是人民邮电出版社出版的《JavaScript+jQuery 交互式 Web 前端开发》书籍。

熊先森的博客 4873

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

JS基础知识(二十二):基本包装类型

基本包装类型 基本包装类型:String、Number、Boolean 基本包装类型:基本包装类型是特殊的引用类型,具有与基本数据类型对应的引用类型的属性和方法。当基本数据类型以对象的方式使用时,js会转换为对应的包装类型。 一个基本数据类型值(String、Number、Boolean——没有使用new进行创建)想使用某种方法时,后台会创建一个对应的基本包装类型的对象,从而使得基本数据类型能够调用一些方法处理数据。 PS: var a = new String(‘aaa’)和 var a = 'aaa’

前端 1165

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JavaScript教程(十二)--- 使用‘类’

​ JavaScript 是一个基于原型的语言——一个对象的行为取决于它自身的属性及其原型的属性。对类来说,相较于与其他面向对象的语言,譬如 Java,创建对象的多层级结构及其属性的继承关系需要更多的代码行。本节,我们将展示如何利用类创建实例。 在许多其他语言中,类(或构造函数)与对象(或实例),是两个不同的概念。在 JavaScript 中,类可以看作是已有的原型继承机制的一种抽象——所有语法都可以转换为原型继承。类本身也是不过是 JavaScript 里一种普通的值,它们有其自己的原型链。

IT小猿 1394

JavaScript 学习之旅:第十二课:类型与对象

什么是类型:类型用于区分不同的数据,JavaScript 有多种内置类型,包括原始类型(如stringnumberboolean等)和引用类型(如objectarrayfunction等)。什么是对象。

caifox的博客 896

javascript学习(十二)JS Number对象和Boolean对象

1.Number对象Number Number 对象是原始数值的包装对象。Number 对象使用 Number() 构造器创建。 语法:new Number(value) 返回值:如果参数无法被转换为数字,则返回 NaN;在非构造器上下文中 (如:没有 new 操作符),Number 能被用来执行类型转换。var n = new Number("23.54"); console.log(type

ZJOOPS的博客 585

JavaScript基础 第十二章 对象

十二、对象 12.1 对象的相关概念 在 JavaScript 中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。 对象是由属性和方法组成的。 属性:事物的特征,在对象中用属性来表示(常用名词) 方法:事物的行为,在对象中用方法来表示(常用动词) 为什么需要对象? 保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。 如果要保存一个人的完整信息呢? 例如,将法外狂徒“张三”的个人的信息保存在数组中的方式为: var arr = ['张三

静夜聆雨的博客 293

JavaScript对象

JavaScript对象 JavaScript 日期对象Date Date对象(内建对象) 在JS中使用Date对象来表示一个时间 getDate() - 获取当前日期对象时几日 getDay() - 获取当前日期是星期几 - 会返回一个0~6的值 0 表示周日 1 表示周一 ... 6 表示周六 getMonth()- 获取当前日期对象的月份 会返回一个0~11的值 0 表示 一月 1 表示二月 ... ...

weixin_49756092的博客 110

JavaScript进阶十二(原型对象)

文章目录一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('igno

qq_44872688的博客 803

JavaScript学习笔记十二 —— 面向对象继承

## 原型指向 `__proto__ ` ```javascript var user = { name: "ylw", age: 3, run: function () { console.log(this.name + "run..."); } } var xioaming = { name: "xiaoming" }; // 小明的原型是user,这样写

影龙武的博客qq_43594119 443

JavaScript(三十二)——JavaScript 类继承

Animal 是一个基类,Dog 是一个继承自 Animal 的子类,Dog.prototype 使用 Object.create(Animal.prototype) 来创建一个新对象,它继承了 Animal.prototype 的方法和属性,通过将 Dog.prototype.constructor 设置为 Dog,确保继承链上的构造函数正确。当创建一个类时,不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。例如,哺乳动物是动物,狗是哺乳动物,因此,狗是动物,等等。

m0_62701594的博客 952

JavaScript学习总结(十二)——JavaScript编写类

JavaScript学习总结(十二)——JavaScript编写类   在工作中经常用到JavaScript,今天总结一下JavaScript编写类的几种写法以及这几种写法的优缺点,关于JavaScript编写类的方式,在网上看到很多,而且每个人的写法都不太一样,经常看到的就是以下几种方式。 1、构造函数方式   用构造函数模拟"类",在其内部用this关键字指代实例对象。 基本语法: function 类名(){ this.属性名;//公共属性 var 属性名;//私有属性 ...

a754315344的博客 414
上一篇: JS(十一)对象,包装类(上)
下一篇: JS(十三)原型、原型链、call、apply(上)
SteveTang957
博客等级 码龄9年 15粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值