JavaScript原型链继承

GEE进行Theil-Sen Median斜率估计和Mann-Kendall检验 Python实现Theil-Sen Median斜率估计和Mann-Kendall检验// 定义时间范围//NDVI图像集合// 定义每年的开始和结束日期// 加载NDVI数据集,按日期过滤,并计算最大值.max()}));// 计算Sen斜率并剪裁// 可视化Sen斜率Map.addLayer(senSlope.select('slope'), vis, "Sen斜率 ");// MK检验// 创建一个列表,包含年度NDVI图像的list。 阅读详情

上面是《JavaScript高级程序设计》(第三版)中介绍的寄生组合式继承的示意图。

做了一个很有意思的实验:将subtype类型的prototype指向subtype的一个实例,结果意想不到的情况出现了:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript Prototype</title>
    </head>
    <body>
        <script>
            var obj={   
                attr1:"heiehi",
            };
            //对象字面量表示,本质上是var obj=new Object();obj.attr1="heihei"
            document.writeln(obj.__proto__+"<br>");//就是Object.prototype,输出为[object Object]
            document.writeln( (obj.__proto__==Object.prototype)+"<br>");//true
            document.writeln("----------<br>");
            var subtype=function(val){
                this.subattr=val;
            };
            //自定义类型的构造函数的原型对象初始是Object的一个实例
            //,同时自定义类型构造函数也是Function类型的一个实例
            //本质上:var subtype=Function("val","{this.subattr=val;}");
            //,所以自定义类型构造函数也具有__proto__属性
            //,指向Function类型的prototype,同时自定义类型构造函数自身也具有prototype属性
            //,初始指向Object类型的一个实例,并且那个实例的constructor属性回指向自定义类型构造函数
            //,当然,自定义类型构造函数主要是使用它的prototype而不是__proto__属性
            document.writeln(subtype.__proto__+"_0<br>");//function () { [native code] }
            document.writeln( (subtype.__proto__==Function.prototype)+"_0.5<br>");//true

            document.writeln( (subtype instanceof Function)+"_1<br>");//true
            document.writeln( (subtype.prototype instanceof Object)+"_1.5<br>" );//true
            document.writeln( (subtype.prototype.__proto__==Object.prototype)+"_1.6<br>");//true
            document.writeln(subtype.prototype.constructor+"_1.7<br>");//function(val){ this.subattr=val; }

            var supertype=function(val){
                this.superattr=val;
            };
            var superobj=new supertype("publicstr");
            subtype.prototype=superobj;
            document.writeln( (subtype.prototype instanceof supertype)+"_2<br>" );//true
            document.writeln( (subtype.prototype===superobj)+"_2.5<br>");//true
            document.writeln(subtype.prototype.constructor+"_2.6<br>");//function(val){ this.superattr=val; }
            //new的superobj对象当然是没有constructor属性的,访问subtype.prototype.constructor会沿
            //原型链找到supertype.prototype.constructor,其指向supertype构造函数
            //验证subtype实例的__proto__
            var subobj=new subtype("publicstr");
            document.writeln( (subobj instanceof subtype)+"_2.65<br>" );//true
            document.writeln( (subobj.__proto__==subtype.prototype)+"_2.7<br>");//true
            
            document.writeln("---------------<br>")
            subtype.prototype=subobj;
            document.writeln( (subtype.prototype instanceof subtype)+"_3<br>" );//false
            document.writeln( (subtype.prototype instanceof supertype)+"<br>" );//true
            //subtype.prototype仍没有像"subtype.prototype=subobj;"那样被赋值成功
            document.writeln( (subtype.prototype==subobj)+"<br>");//true
            document.writeln( (subtype.prototype==superobj)+"<br>");//false
            document.writeln( (subobj instanceof subtype)+"_4<br>");//false
            
            document.writeln( (typeof subtype.prototype)+"<br>");
            document.writeln(subtype.prototype.constructor+"<br>");//function(val){ this.superattr=val; }
            document.writeln( (subobj.prototype instanceof supertype)+"<br>");//true
            document.writeln( (subobj.prototype==superobj)+"<br>");//true
            document.writeln( (subtype.prototype==subobj.prototype)+"<br>");//false
            //很奇怪,若此时subtype.prototype指向subtype的实例subobj,
        </script>
    </body>
</html>

我也是太无聊,类型的原型对象指向自身的一个实例,应该不会有这种情况,阿西吧。

渗透测试工具之Sliver 攻击者需要将生成的植入物传输到目标系统,并执行它。C2 框架的架构与 Metasploit(如 Meterpreter)类似,但更专注于。(Red Teaming)中常见的攻击工具之一,攻击者利用 C2 服务器。组成,二者共同实现 C2 服务器与受控设备的通信。植入物(Implants)是 Sliver 生成的。抓包分析时,可以看到所有数据都是加密传输的。和**监听器(Listeners)**功能。Sliver 支持多种通信协议,如。随着安全防御的不断提升,企业应加强。进行通信,数据仍然是加密的。 阅读详情

相关推荐

C语言由scanf(“%d“,)非法输入字符造成的死循环及其解决方案

声明:此文章仅作为C语言学习历程中的思路整理,用于解决入门阶段较为浅显的问题,如有错误还请指正。 现象描述: 代码要求实现用户输入1或2,通过scanf("%d",&a)读取这个值,从而判断分属于1或2的两种情况。输入非1,2的数字都应该返回"Invalid Number!",并且要求重新输入数字。 while(a!=1&&a!=2) { printf("Invalid Number!\n"); printf("Enter the number:"); scan

weixin_49764077的博客 8719

【超详细】从0开始的JS原型链与继承讲解

在本篇文章开始前,我要说明一个问题,在学习任何事物前都要明确一件事,就是:为什么要存在这个东西?这个东西的存在可以解决什么问题的。当你明白了这个东西存在的意义时,你也就了解他了,而不是把这件事物当成必须去死记硬背的学。因为原型这个东西你不去明白他的原理就去死磕那个很乱的图,即使你当时明白了,但是过不了一段时间就会忘掉。所以,接下来我要先说明一下这个东西存在的意义。

qq_73594911的博客 353

UEC++ 虚幻5笔记(数字孪生示例) day13

文件读取与写入,数字孪生入门制作

qq_44924388的博客 3842

javascript原型、原型链、继承详解

在JavaScript中,call和apply是两个用于调用函数的方法。call。它接收一个参数列表,并将每个参数传递给函数。第一个参数thisArg是可选的,用于指定函数中的this值。如果不传递thisArg,默认为全局对象(在浏览器中是window对象)。call方法会立即调用函数。${${this在这个例子中,call方法将person对象作为第一个参数传递给了greet函数。函数执行后,this.name将会是person对象的name属性。输出将会是。

jieyucx的博客 2037

边缘智能新篇章:RK3588上YOLOv8姿态估计的轻量化部署与性能优化实战

本文详细介绍了在RK3588平台上部署和优化YOLOv8姿态估计模型的完整流程。通过模型转换、ONNX中间表示和性能优化策略,实现在边缘设备上的高效实时推理,为嵌入式AI应用提供可行的轻量化解决方案。

ik6789012的博客 151

电子硬件仿真:设计一个频率范围为10k—50k的带通滤波器

带通滤波器是一种常用的滤波器类型,具有选择特定频率范围内信号的能力,并在该范围内提供一定的增益。它允许通过一定范围内的频率信号,并在该范围内提供一定的增益,同时在该范围之外的频率上提供较高的衰减。这意味着在通带内(10kHz至50kHz),滤波器的增益应为10dB,而在每个十倍频的频率点上,滤波器的增益应降低40dB。设计滤波器:使用滤波器设计工具(如MATLAB、Python的scipy库、Tina软件等),根据选定的滤波器类型(例如巴特沃斯滤波器),中心频率和通带宽度,设计一个4阶带通滤波器。

走向CTO的路上... 579

【JavaScript】原型链 & 继承

访问实例的属性时,先查看该实例自己的属性;若还是没有,则查看其原型对象的原型对象的属性;思路:因为实例可以获取原型链上的数据,这样我们可以把父类的实例作为子类的构造函数的原型。思路:复制父类实例的属性给子类实例,解决原型链继承中的 “引用值共享问题”。可以发现,只要我们更新原型链上的某一节点,就会影响该节点以下的所有实例。通过构造函数继承,继承父类的属性,并解决 “引用值共享问题”。如果我们给实例重写了一些的同名属性,会覆盖其原型对象的属性。通过原型链继承,继承父类的原型链的属性。

Superman_H的博客 751

低轨通信 | 手机直连低轨卫星通信:架构、关键技术与未来展望

手机直连低轨卫星通信正推动人类进入"全域连接"时代。当中国星网GW星座与千帆星座的万颗卫星点亮夜空,当普通智能手机在珠峰之巅仍能流畅视频通话,当远洋渔船通过卫星物联网实现精准捕捞——这些场景不仅重构通信产业格局,更将深刻改变人类生产生活方式。正如工信部《指导意见》所规划,到2030年我国将发展超千万卫星通信用户,催生万亿级新市场[1][5]。在这场太空基建竞赛中,技术创新与标准制定的双重突破,将决定未来数字文明的星空版图。

尘世冰封的专栏 938

JavaScript: 原型链继承(原理解析 + 代码实现 + 结构图解)

原型链是实现继承的一种基础方式,是原型搜索机制的扩展。本文以基本原理,代码实现,结构图解三种方式诠释,无论基础如何,都能通过本文对js原型链继承达到更深入的理解。

技术圈 2665

图神经网络实战——总结 | 图神经网络展望

短短数年时间,图神经网络 (Graph Neural Networks, GNN) 已经成为一种重要的深度学习架构,并且已经广泛应用于各个行业。通过本专栏的学习,能够对图学习和 GNN 领域有一个全面的了解,并能为各种应用设计、构建GNN模型。

盼小辉丶的博客 8560

【占用网络】OccNet: Scene as Occupancy 适用于检测、分割和规划任务 ICCV2023

本文分享“占用网络”方案中,具有代表性的方法:OccNet。它以多视角视觉为核心,首先生成BEV特征,然后通过级联结构和时间体素解码器重建生成3D占用特征。构建一个通用的“3D占用编码特征”,用以表示3D物理世界。这样的特征描述可以应用于广泛的自动驾驶任务,包括检测、分割和规划。

黎国溥 3361

JavaScript:原型、原型链、继承

每个函数都有一个 prototype(原型)属性,这个属性是一个指针,指向一个对象, 而这个对象的用途是包含可以由特定类型的所有实例共享的属性和方法,使用原型对象的好处是可以 让所有对象实例共享它所包含的属性和方法。当你创建一个对象时,Javascript会从该对象的构造函数的原型对象中查找属性和方法。结合第四种中提及的继承方式,解决普通对象的继承问题的 Object.create 方法,我们在前面这几种继承方式的优缺点基础上进行改造,得出了寄生组合式的继承方式,这也是所有继承方式里面相对最优的继承方式。

snow的博客 1625

VS2019 C# 连接IBM DB2数据库并查询数据表

操作系统:win10 64位 C#:VS2019 数据库:IBM DB2v11.1_win64_expc 其他工具:IBM Data Studio ibm_ds4130_win 步骤一:使用命令行或是IBM DB2工具:Data Studio,创建一个数据库。这里名称为:Student CREATE DATABASE "Student" AUTOMATIC STORAGE YES ...

坚韧与专注 3796

JS中修改原型链继承

学习JS的继承需要对JS的原型链有一定了解: https://blog.youkuaiyun.com/PrisonersDilemma/article/details/89318495 之前学习了原型链,这里对原型链的继承总结一下。 文章目录 functionAnimal(){ this.name="this animal"; } Animal.prototype.eat= function (f...

PrisonersDilemma的博客 1412

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Statistics and Machine Learning Toolbox

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

JS Raccoon:掌握JavaScript原型链与继承的完整教程

JS Raccoon是一个专注于Web开发技巧的开源项目,提供了丰富的JavaScript编程指南。本教程将帮助你彻底理解JavaScript中独特的原型链与继承机制,这是掌握面向对象编程的核心基础。 ## 为什么原型链是JavaScript开发者的必备知识? JavaScript作为一门灵活的脚本语言,其对象模型与传统的类式继承语言有本质区别。理解原型链不仅能帮助你写出更优雅的代码,还能让你

gitblog_00071的博客 617

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

js原型继承和原型链继承以及注意事项

* 就是子对象自动拥有父对象的属性和方法, 继承可以提高代码的复用性。 * JS里的继承主要依靠是的原型链。让原型对象(每一个构造函数都有一个原型对象)的值,等于另一个类型的实例,即实现了继承;另外一个类型的原型再指向第三个类型的实例,以此类推,也就形成了一个原型链 function Animal(newName,newAge){ this.name = newName; ...

素描本里的男子的博客 3774

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

JavaScript 原型链与继承

原型链与继承 系列文章 这是JavaScript系列文章: 类 promise async & await 原型链与继承 闭包 this CommonJS ES6 Module 文章目录原型链与继承系列文章

一出好剧 9505

javascript中的继承(JS基于原型链的继承),以及JS中的call和apply函数

继承是面向对象编程语言的一个重要特性,比如JAVA中,通过extend可以实现多继承,但是javascript中的继承方式跟JAVA中有很大的区别,JS中通过原型链的方式实现继承。

liwusen的博客 1912

js原型、原型链和继承

继承是指将特性从父代传递给子代,以便新代码可以重用并基于现有代码的特性进行构建。JavaScript 使用对象实现继承。每个对象都有一条链接到另一个称作原型的对象的内部链。该原型对象有自己的原型,依此类推,直到原型是 null 的对象。

hole_diss的博客 1237

深入了解js原型与原型链——继承

导语 说到 js原型、原型链、继承,是个令人头疼的问题,说懂吧,只懂一点,说不懂,倒是知道一点。 看到网上很多关于这几个知识点的文章,不过大都会把人讲懵,今天你刷到我,那么你就舒服了。 js 原型 话不多说,先上代码: function Person(){ } Person.prototype.name = "养猪的王某人"; Person.prototype.age = 18; ...

欧阳的技术博客 8635

JavaScript的继承方式——原型链

JavaScript中依靠原型链的继承方式 开门见山,ECMAScript中实现继承主要是靠原型链来实现的。 什么是原型链呢?   其基本思想是利用原型,让一个引用类型继承另一个引用类型的属性和方法。根据上一节原型对象:我们知道,每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。那么如果我们让原型对象等于另一个类型的实例,结果会怎样呢

flyingpig2016的博客 1707

JavaScript的原型链-JS实现继承的底层机制

对于如何是原型链,我们要先了解原型链的“钥匙”——‘prototype’和‘__proto__’,对于这两个属性需要知道该用在哪里,而不是随便乱用。

2401_83354214的博客 198

JavaScript原型链与继承

一、Javascript原型链 要讲解Javascript原型链我们首先要弄明白几个名词。prototype、__proto__、constructor、原型链。 1、prototype 在JavaScript中,每个函数都有一个prototype属性,这个属性指向函数的原型对象。 原型的概念:每一个javascript对象(除null外)创建的时候,就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型中“继承”属性。 举个例子: function Person(age){ this.

qq_43239667的博客 745

详解JS原型链与继承

详解JS原型链与继承

hzj1369的博客 2203

【JS继承】JS继承之原型链继承

1.函数 所谓 函数 也就是 函数 Personal 其本身,也叫作构造函数 ,当一个函数被创建的同时,也会为其创建一个 prototype 属性,而这个属性,就是用来指向 函数原型,的我们可以把 prototype 理解为 Personal的一个属性,保存着函数原型的引用。2.函数实例 函数实例 很好理解,就是上面代码中通过 new Personal() 得到的实例p,于此同时函数实例 p 内部会包含一个指向 函数原型的指针[[Prototype]],因此我们通过 p 可以去调用 函数原型 上的属性和方法

吉帅振博客 1252

JavaScript 原型链与继承完全指南

本文深入解析了JavaScript的原型链与继承机制。首先介绍了原型链的基本概念,包括[[Prototype]]属性和原型查找机制,通过示例展示了原型链的工作原理。接着详细阐述了五种继承实现方式:原型链继承、构造函数继承、组合继承、寄生组合继承以及ES6类继承,分析各种方式的优缺点。文章还探讨了原型链动态特性、混入模式等高级应用,并给出最佳实践建议,如优先使用ES6类语法和组合模式。最后从底层机制角度解释了构造函数与原型对象的关系、Object.create()方法和instanceof运算符。理解这些核心

分享知识,拥抱变化 1127
上一篇: HTML5 Element.getElementsByClassName()方法在Chrome中返回HTMLCollection对象,《JavaScript高级程序设计》(第三)勘误P289
下一篇: JavaScript事件对象event生成在DOM的全局作用域对象window中,并在调用事件处理程序时进行传递
HayPinF
博客等级 码龄9年 175粉丝 140原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值