首页 > 其他分享 >请问以下JS代码的输出是? 935、 ['read', 'write']

请问以下JS代码的输出是? 935、 ['read', 'write']

时间:2023-11-10 15:36:10浏览次数:31  
标签:read work father son write son1 num new JS

function father() {
  this.num = 935;
  this.work = ['read', 'write', 'listen'];
}
function son() {}
son.prototype = new father();
let son1 = new son();
let son2 = new son();
son1.num = 117;
son1.work.pop();
console.log(son2.num);
console.log(son2.work);

需要明确写操作和读操作的不同,关于num变量是一个写操作的过程,所以当发现实例son1本身没有num变量时直接新增num变量且赋值为117,并不会涉及到原型链上,因此不会影响下次实例化num的值。
而数组的修改并没有影响到数组的引用,所以可以看成是读操作然后在原型链上修改,与实例本身无关,除非是直接给数组赋值来修改掉其引用,因此会影响到下次实例化数组的值。

function father() {
   this.num = 935;
   this.work = ['read', 'write', 'listen'];
 }

 function son() {}

 son.prototype = new father(); //相当于son.prototype = father.prototype

 let son1 = new son(); //相当于 new father()

 let son2 = new son();
 son1.num = 117;  //设置自己的num
 son1.work.pop(); //自己没有work找到原型的work
 console.log(son2.num); //找num 自己没 找原型的num 所以为935
 console.log(son2.work);//找work自己没 找原型的work 因为之前pop了一次 所以为['read','write']

标签:read,work,father,son,write,son1,num,new,JS
From: https://www.cnblogs.com/longmo666/p/17824222.html

相关文章

  • JavaSE(三十一)-IO流--PrintWriter类
    文章目录1.常用的构造方法2.常用方法3.PrintWriter和BufferedWriter的使用区别java.io.PrintWriter是java中很常见的一个类,该类可用来创建一个文件并向文本文件写入数据。可以理解为java中的文件输出,java中的文件输入则是java.io.File。1.常用的构造方法1)构造方法参数为String......
  • 【RuoYi移动端】HBuild工具插件安装和系统配置manifest.json
    一、点【工具】-【插件安装】安装如下工具  二、点【manifest.json】......
  • nvm的安装及Node.js环境配置
    一、nvm是什么? nvm是一个node的版本管理工具,可以简单操作node版本的切换、安装、查看、等等二、nvm的安装1.windows包下载地址: 下载nvm安装包,下载地址:https://github.com/coreybutler/nvm-windows/releases2.双击安装文件nvm-setup.exe文件进行安装:(1)安装 (注意这里:默......
  • js帮我实现单页面跳转到指定页面的技术!
    网站的根目录下的HTML文件中(通常是 index.html 或 index.php)使用 window.location 对象。以下是一个简单的HTML页面示例,它包含了JavaScript代码,用于执行这样的重定向:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compa......
  • vuejs3.0 从入门到精通——动态组件
    动态组件一、App.vue<template><ul><!--使用ul标签替代了错误的url标签,用于展示列表--><liv-for='(item,index)intabList':key='index'@click="()=>{currentComponent.com=tabList[index].com}"><!--......
  • R语言和jsonlite库编写代码示例
    R语言和jsonlite库来下载的程序。#导入jsonlite库library(jsonlite)#设置代理主机和端口proxy_host<-""proxy_port<-#使用httr库创建一个对象proxy<-create_proxy(proxy_host,proxy_port)#使用httr库的GET方法下载网页内容url<-""response<-GET(url,pro......
  • Node.js framework express.js middleware All In One
    Node.jsframeworkexpress.jsmiddlewareAllInOneexpress.jsmiddlewaresorderwritingmiddlewareconstexpress=require('express')constapp=express()constmyLogger=function(req,res,next){console.log('LOGGED')next(......
  • nodejs 一些不错的ioc 框架
    nodejs周边一些ioc框架还是不少的,以下整理一些,而且不少有以前简单介绍过说明目前InversifyJS,awilix还不错基本都还在维护以及迭代中,typedi以及tsyringe似乎缺少维护了injex属于一个比较新的ioc项目,目前看使用还是比较简洁的,比较类似java的guice框架,实际上ioc框架特别多......
  • 20行JS代码实现屏幕录制
    在开发中可能有遇到过屏幕录制的需求,无论是教学、演示还是游戏录制,都需要通过屏幕录制来记录和分享内容。一般在App内H5页基于客户端能力实现的较多,现在浏览器中的MediaRecorder也提供了这种能力。MediaRecorder是一种强大的技术,可以在浏览器端实现屏幕录制功能。本文将介绍如何......
  • 前端学习-JavaScrip学习-js基础03
    学习教程:黑马程序员视频链接循环案例-九九乘法表<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>......