JS模拟面向对象,对象原型,JSON,with语句,for in 语句

JavaScript从入门到精通:核心概念、运行原理与全栈应用实战 JavaScript作为一门解释型、即时编译的编程语言,其核心在于通过ECMAScript标准定义语法,结合文档对象模型和浏览器对象模型实现与网页的交互。理解其单线程事件循环机制是掌握异步编程的关键,这构成了现代Web应用高并发处理的基础。从变量作用域、闭包到原型链,这些独特的设计模式赋予了JavaScript强大的灵活性和表现力。随着Node.js的出现,JavaScript突破了浏览器的限制,实现了全栈开发,其应用场景已从前端动态交互扩展到服务器端编程、跨平台桌面应用构建以及移动端开发。本文将通过解析J 阅读详情
// 定义类,定义函数
function Person () {
    this.name ="dub"//公有的属性
    age = 100;//私有属性
//公有的方法
this.hh = function () {
    alert("hh");
//私有的方法
  kk = function () {
    alert("ll");
  }

}


}
//创建对象
var P = new Person();
//区分大写小写
alert(P.name);
alert(P.age);
P.hh();
//模拟静态的
Person.g="big";

Person.study1=function () {
    alert("dajb");
}
Person.study1();
//带参的

function Test( name, age) {
    this.name =name;
    this.age = age;

}

var t  = new Test(1,1) ;

alert(t.name);

对象原型:对于已知类,获取到原型,以便扩张功能.

//得到对象原型:对于已知类,获取到原型,以便扩张功能.

// String.prototype.trim = function() {
//  return this.replace(/(^\s*)|(\s*$)/g, "");//去掉字符串首尾空格
// };

// var  v = new String("     be  ");
// alert(v.trim())

/*var arr = new Array(1,34,53,3);
//创建获取最大值的方法
Array.prototype.getMax = function() {
    var max =arr[0];
    for (var i = 1; i < arr.length; i++) {
        if(arr[i]>max){
            max = arr[i]
        }
    }
     return max;
}
//调用方法
  alert(arr.getMax() );*/
//模拟继承
//创建类,函数
/*function Person() {
    this.name="sb";
    this.age = 11;
}

function Student() {
    this.gander="glir"
}

var a = new Person() ;
//把 a 赋值给子类原型.就是继承.
Student.prototype = a;

var s = new Student();
alert(s.name);
alert(s.gander);*/

Json

//JSON  
//定义对象
// var j ={"name":"张3",age:19,gender:'女'};
// alert(j.name);
// alert(j.age);
// alert(j.gender)
// //数组的定义
// var arr = ['nv',1,"hao"];    
// for (var i = 0; i < arr.length; i++) {
//  alert(arr[i]);
// }

//可以嵌套,数组放的是对象
var arr2 =[{name:"lisi",age:11,gender:'nv'},{"name":"张3",age:19,gender:'女'}];
alert(arr2[0].age);
alert(arr2[1].name);

with

//with 语法
//var  a  = {name:"lisi",age:11,gender:'nv'};
/*with(a) {//不用再用引用调方法了.

    alert(name);
    alert(age);
    alert(gender);
}
*/

for in

//for in 语法 
// for(var props in a){//遍历a对象中的所有属性。当前属性名称赋给props变亮
//          alert(props+"="+a[props]);
//      }
JavaScript class本质:ES6语法糖与原型链真相 JavaScript中的class并非面向对象新范式,而是基于原型(prototypes)的构造函数(constructors)语法糖,其核心原理在于编译时转译为函数声明与Object.defineProperty调用,并严格复用已有原型链机制。这种设计在保持向后兼容的前提下,提升了代码可读性、安全性和继承表达力,技术价值体现在严格模式默认启用、不可枚举方法、静态/实例成员清晰分离等工程优势。典型应用场景包括React/Vue类组件开发、Web Components自定义元素定义、TypeScript类型系 阅读详情

相关推荐

JavaScript对象创建七种方式:从字面量到Class的全面解析

在JavaScript编程中,对象是构建复杂应用的基础数据结构,理解其创建原理对提升代码质量至关重要。对象创建涉及原型链、内存管理和设计模式等核心概念,不同的创建方式直接影响代码的可维护性、性能和复用性。从最基础的对象字面量到工厂模式、构造函数模式,再到ES6的Class语法,每种方式都有其特定的技术价值和应用场景。例如,对象字面量适合快速创建简单数据结构,而构造函数模式结合原型链能实现高效的方法共享。本文深入解析七种创建方式,帮助开发者在实际工程中选择最合适的方案,提升代码健壮性和灵活性。

weixin_33889665的博客 431

【JavaScript】JavaScript模拟实现面向对象&一张图帮助你深刻理解原型链和原型对象

文章目录JavaScript模拟面向对象函数是类函数中各种变量的声明关于函数内的this练习:面向对象思想编写Complex类模拟静态成员初尝试初探究prototype原型   JavaScript毕竟不是Java,它也不是纯粹的面向对象语言,我的这篇博文只是模拟相关面向对象编程。同时也是深入学习JavaScript,将它与Java思想结合遇到的一些问题,在这里进行总结。 JavaScript模拟面向对象 函数是类 function Obj() { // <=> var Obj = functi

weixin_45500506的博客 544

Ubuntu 22.04下Minkowski Engine编译避坑指南:解决Cuda 12.2与Pytorch cu118版本冲突

本文详细介绍了在Ubuntu 22.04系统中解决Minkowski Engine编译时Cuda 12.2与Pytorch cu118版本冲突的实用方法。通过修改版本检查逻辑、创建兼容符号链接等技巧,帮助开发者顺利完成编译,并提供了性能优化建议和替代方案,确保三维点云处理任务的高效运行。

weixin_42543309的博客 161

js 模拟面向对象的方式

首先简单了解一下 面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1]  发展到一定阶段后的产物。 面向对象是在结构化设计方法出现很多问题的情况下应运

无与伦比的傻 661

WeDetect:基于视觉-语言检索的目标检测新范式

目标检测正从传统回归与分类耦合范式,向开放、灵活、可扩展的多模态检索范式演进。检索式检测(Retrieval-based Detection)将检测任务重构为视觉特征与文本语义的联合匹配过程,依托候选框索引库与双塔架构,天然支持开放词汇、零样本识别与小目标定位。其技术价值在于解耦空间感知与语义理解,消除NMS与anchor匹配等冗余计算,显著提升推理效率与跨场景泛化能力。典型应用场景包括工业质检中的缺陷新增识别、遥感图像小目标检测、低光照鲁棒视觉系统等。WeDetect正是这一范式的代表性实现,深度融合视觉

weixin_30878501的博客 361

手把手教你用ZLMediaKit搭建WebRTC直播:本地推流与播放实战

本文详细介绍了如何使用ZLMediaKit搭建WebRTC直播系统,涵盖从环境准备、编译部署、SSL证书配置到本地推流与播放的完整实战流程。通过一步步的指导,帮助开发者快速掌握基于ZLMediaKit的WebRTC推拉流技术,构建低延迟的实时音视频应用。

weixin_28842367的博客 347

模拟一个js new一个对象的过程

function Person(){ this.name=1234; // return {}; } Person.prototype.getname=function(){ console.log(this.name); ...

weixin_34279246的博客 213

USRP X410 MPM版本与主机UHD版本不匹配问题记录与解决

至此大功告成!之前安装软件的坑算是填起来了,再次记录一下,希望能帮到有同样问题的小伙伴~

yanzuwu233的博客 1435

javascript中模拟面向对象编程

016 //面向对象 //js并不是面向对象的语言,只能说去模拟 /* var obj=new Object();//var obj={}; obj.name='z3'; obj.age='男'; obj.sayName=function(){alert('我是张三');}; obj.sayName(); */ //

lx__angel的博客 258

AI产品经理面试宝典第94天:RAG知识库构建与预处理策略面试指南

本文深入解析RAG知识库构建的核心挑战与预处理策略,涵盖文档格式转换、问答对生成及自动化测试全流程,为AI产品经理提供面试必备的实战方法论与避坑指南,助你精准应对技术深度类问题。

打造全国最全的AI Agent开发知识领域的博客 312

NeRF-Pytorch(训练自己的数据集过程全记录+环境配置+COLMAP+问题解决)

写于2025/1/26,在用NeRF训练自己的数据集过程中该踩的坑都踩过了,发现网上并没有详细完整写这些问题解决过程的帖子,遂自己进行一个全记录和复盘。 整篇文章包括:NeRF训练环境配置;COLMAP三维重建过程(直接给出代码,规避一些bug);在训练时候出现的问题。 本篇文章仅针对llff格式数据集。

m0_62577716的博客 1774

JS模拟面向对象全解(一、类型及传递)

首先说明JS的特点。JS是弱类型的语言,像什么模板多态、又是类又是结构的说法,就完全不存在。可是,没有类,何来面向对象一说?没有关系,可以模拟。而且这一套方法已经成为公认的JS实现面向对象的方法。另外,JS内的东西完全开发,也就不存在成员的什么private、protected作用域。下面切入正题。————————————————————————————————————————

智圆行方科技工作室 723

生成模型实战 | MuseGAN详解与实现

人工智能音乐生成领域已引起了广泛关注,MuseGAN 是其中一个重要的模型。本节我们将使用 JSB Chorales 数据集来训练 MuseGAN,该数据集包含巴赫创作的四音轨合唱曲。在生成图像时,生成器使用的是来自潜在空间的单一噪声向量来生成不同格式的内容;而在 MuseGAN 中,生成器将使用四个噪声向量来生成一段音乐,旨在增强音乐生成过程中的可控行和多样性。每个噪声向量代表音乐的不同方面,通过单独调整这些向量,模型可以生成更复杂、更细腻的音乐作品。

盼小辉丶的博客 6560

Ruby-JMeter高级功能探索:JSON提取、断言和复杂场景模拟

Ruby-JMeter作为一款基于Ruby的JMeter测试计划DSL工具,为性能测试工程师提供了强大的高级功能。本文将深入探索Ruby-JMeter在JSON数据提取、断言验证以及复杂场景模拟方面的终极指南,帮助您快速构建专业的性能测试方案。 ## 📊 JSON数据提取与处理 在现代API测试中,JSON已成为最常用的数据交换格式。Ruby-JMeter提供了多种JSON数据提取方法,让您

gitblog_00768的博客 305

UCIE Specification详解(三)

Protocol Layer(协议层)以及Die-to-Die Adapter

Crazzy_M的博客 1761

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

内的 对象 获取 键值对_JavaScript中的对象及使用

哈喽大家好,我是作者“未来”,本期分享的内容是Web前端系列课程,本系列总共29个阶段,坚持学习3个月蜕变为Web前端高手哦!志同道合的小伙伴跟我一起学习交流哦!第三阶段 JavaScript基础19 对象编程思想:把一些生活中做事的经验融入到程序中。面向过程:凡事都要亲力亲为,每件事的具体过程都要知道,注重的是过程。面向对象:根据需求找对象,所有的事都用对象来做,注重的是结果。面向对象特性:封装...

weixin_42489252的博客 225

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

JavaScript大杂烩5 - JavaScript对象的若干问题

1. 类型检查:instanceof与typeof   这是两个相似的操作符,instanceof用于检测函数的实例类型,主要是在面向对象编程中检查new出来的对象类型,需要注意instanceof是检查function对象的,前面实现的复制继承中的例子就不适用于使用instanceof来检查继承关系了。typeof,它用于检测变量的类型,在实际情况中应用的不是很多,稍微了解一下就可以了。  ...

weixin_33938733的博客 107

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

前端开发者快速上手Python:从JS到Python的思维转换与语法对照

动态类型语言是现代编程的基础范式之一,它允许变量在运行时改变类型,提升了开发灵活性。其核心原理在于解释器或虚拟机在运行时进行类型推断和管理。这种设计为快速原型开发和脚本编写带来了巨大价值,广泛应用于Web开发、数据分析和自动化运维等领域。对于已经熟悉JavaScript的前端开发者而言,掌握另一门主流动态语言Python,能有效拓展技术栈,实现全栈开发或数据科学应用。本文聚焦于这一技术迁移场景,通过对比两种语言在代码结构、数据类型、函数定义和异步编程等关键概念上的异同,特别是针对强制缩进、列表推导式、asy

weixin_30457465的博客 419

前端开发者Python速成指南:从JS思维到Pythonic代码的思维映射

动态类型语言是现代编程的基石,它允许变量类型在运行时确定,为开发带来了灵活性。然而,不同动态类型语言在类型强度上存在显著差异,这直接影响了代码的健壮性和设计哲学。Python作为一门强类型的动态语言,其核心设计原则强调代码的清晰性、一致性和优雅性,这体现在其独特的语法规则和社区推崇的“Pythonic”编码风格中。这种设计为数据处理、后端开发和自动化脚本等工程实践场景提供了坚实的基础。对于熟悉JavaScript的前端开发者而言,理解两种语言在变量声明、函数定义、异步编程和面向对象等核心概念上的映射关系,是

weixin_34409357的博客 408

js面向对象基础一

JS中的面向对象是在语言的发展中经历了汇编语言,面向过程,面向对象语言。面向过程是亲力亲为,所有代码自己写。而面向对象是对现实世界的模拟,JS准确说是基于对象的语言,不像Java有类的概念。面向对象注重的结果,是抽象出现实世界的世间万物的特征,行为加以描述。一、了解创建对象的三种方式  创建对象三种方式:     1  字面量的方式,只能描述一个对象。    2  调用系统的构造函数,是字面量方式...

Surpass-oneself的博客 335

Js 简单的总结

* 面向对象:是一种编程思想,找对象,注重的是结果 * 面向过程:也是一种编程思想,注重的是细节,注重的是每一步 * 面向对象的特性:封装,继承,多态--了解 * C# c++ Java,OC-----IOS中的 * 基于对象的语言:不能自己创建属于自己的数据类型(暂时的) * JavaScript属于基于对

S_xiajinghan的博客 403

第5篇_Python文件操作与异常处理:程序与外界交互的桥梁

读取一个不存在的文件 → Python 抛出把字符串当数字做除法 →TypeError整数除以零 →列表只有 3 个元素却要访问第 10 个 →IndexError用户输入了 “abc” 而程序期待一个数字 →ValueError这些错误,在 Python 中被称为异常(Exception)。异常不是 “程序坏了”,而是 “程序遇到了预期之外的情况”。默认行为:如果不对异常做任何处理,程序会打印错误追踪信息(traceback),然后直接崩溃退出。# 演示:程序崩溃的情况。

Lenyiin 4109

前端面试必备:20个高频JavaScript手写题详解

掌握JavaScript手写题是前端开发工程师面试成功的关键!在当今竞争激烈的技术面试中,JavaScript手写题已经成为衡量开发者基本功的重要标准。本文将为您详细解析20个最常考的JavaScript手写题,帮助您轻松应对前端面试挑战。😊 ## 📚 为什么要掌握JavaScript手写题? JavaScript手写题不仅考察您对语言特性的理解,更能体现您的编程思维和解决问题的能力。无论

gitblog_01106的博客 978

JavaScript面向对象入门

什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用【String、Date、Array】等等 javaScript也允许我们自己自定义对象 事件驱动 当用户触发执行某些动作的时候【鼠标单机、鼠标移动】,javaScript提供了监听这些事件的机制。当用户触发的时候,就执行我们自己写的代码。 解释性语言...

weixin_30879169的博客 85

JavaScript高级程序设计 - 读书笔记

JavaScript高级程序设计 - 读书笔记 by JerryChan 第2章 在HTML中嵌入JavaScript 2.5 小结 第3章 基本概念 3.1.4 严格模式 3.3 变量 3.4 数据类型 3.4.3 Null类型 3.4.4 Boolean类型 3.4.5 Number类型 3.4.6 String类型 3.4.7 Object类型 3.5 操作符 3.6...

bagc47052的博客 354

ES6 class不是语法糖:深入理解JavaScript面向对象本质

JavaScript中的class并非简单的语法糖,而是基于原型链、执行上下文和属性描述符构建的面向对象核心机制。其原理涉及词法不可提升性、严格模式自动启用、constructor强制入口、super()三阶段初始化、方法不可枚举性及new.target元信息识别等底层行为。这些设计带来更强的封装性、可预测性和调试友好性,显著提升大型应用的可维护性与协作效率。在前端工程化、框架开发(如React/Vue类组件)、跨语言迁移(Java/Python转JS)及性能敏感场景中,准确掌握class机制直接关系到继承

weixin_34184561的博客 514
上一篇: htmlDOM二级联动
下一篇: JAXP:(Java API for XML Processing)DOM方式解析XML文件
Whyloveit
博客等级 码龄10年 48粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值