ES5-9 【utils】构造函数及实例化原理、包装类

1. 构造函数

调用构造函数实际会经历4步
1 创建一个新对象
2 将构造函数的作用域赋值给对象(因此this就指向了这个对象)
3 执行构造函数中的代码(为这个新对象添加属性)
4 返回新对象

  • 在构造函数内部,this指向构造函数实例化的对象(new的时候做的事)
    在这里插入图片描述
  • 当构造函数return引用值时(函数、函数声明、对象、数组、Date…),返回引用值,若是原始值则忽略
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.包装类

  • 原始值没有自己的方法和属性
console.log(new Number(1))
console.log(new String(1))
console.log(new Boolean(1))

在这里插入图片描述

  • 数字经过new Number后成为一个对象,可以为它添加属性和方法,可以参与运算,但返回的结果是原始值

  • undefined和null不能设置属性和方法

  • 如果把new的结果保存起来,则能打印len

  • 注意以下例子

var a = 1;
a.len = 5;
console.log(a.len) // undefined 
// 不会报错,一个变量点任何属性都不会报错

在这里插入图片描述

  • new Number不会改变原来的原始值a
var a = 1;
var objA = new Number(a)
objA.name = 'name'
console.log(objA, a) // Number {1, name: "name"} 1
  • var str = 123,str能打印length,并不是str具有其属性,而是打印时经过了一层包装类
  • 数组的length可以用于截断或设置,empty填充
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
var x = 1,y = z = 0;
function add(n) {return n = n + 1;
}
y = add(x);
function add(n) {return n = n + 3
}
z = add(x);
console.log(x, y, z) // 1 4 4
  • foo1、foo3能输出12345,foo2不报错
    在这里插入图片描述
  • ASCII码表1 0-127 表2 128-255 1字节
  • UNICODE码哈涵盖了ASCII码 从第256位开始的占2字节
function compute(str) {var sum = 0for (var i = 0; i < str.length; i++) {let temp =  str.charCodeAt(i)sum += temp <= 255 ? 1 : 2}return sum
}
console.log(compute('ab黄')) // 4
  • 优化:减少循环次数
    在这里插入图片描述

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

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

相关文章

es6 --- 异步迭代生成器 Promise

看一个经典ajax回调的例子: function foo(x, y, cb) {ajax("http://some.url.1/?x" x "&y" y,cb); }foo(11, 31, function(err, text) {if(err) {console.error(err);}else {console.log(text);} });// 异步请求some.url.1参数为x 11, y31的数据.…

Mysql5.7.20使用group by查询(select *)时出现错误--修改sql mode

使用select * from 表 group by 字段 时报错错误信息说明&#xff1a; 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column haha_db.staff.id which is not    functionally dependent on columns in GROUP BY clause; this…

【心情随笔】03

一、 越是学习越是感到自己的无知。以往总有不求甚解的做法&#xff0c;稍微看了一下就囫囵吞枣算懂了&#xff0c;其实这是逃避&#xff0c;不仅面试问的时候答不上来&#xff0c;而且内部可以用来扩展的思想也没有领悟到。连该问题都说不清楚更不要说举一反三了。近来&#x…

ES5-10 原型、原型链、闭包立即执行函数、插件开发

重学第六章 1. 原型 实例内属性和原型上属性重名时&#xff08;屏蔽&#xff09; function Test(name) {this.name name } Test.prototype.name hhh let tObj new Test(yyy) console.log(tObj.name) // yyy tObj.name null console.log(tObj.name) // null delete tObj.…

javascript --- 使用run函数,让100条ajax依次执行

使用如下: function *foo(len,urlArray) {let r [];for(let i 0; i< len; i){r[i] yield request(urlArray[i]);} } // len:是长度,urlArray,是请求的url数组..下面附上run函数的代码,以及证明以上是成立的 // Benjamin Gruenbaum(benjamingr on Github) function run(g…

[转]IIS 允许/禁止 目录浏览

<?xml version"1.0" encoding"utf-8"?> <configuration><system.webServer><directoryBrowse enabled"true" /></system.webServer> </configuration> enabled true -> 允许目录浏览&#xff0c;子目…

C++编程基础一 06-布尔类型

1 // 06-布尔类型.cpp: 定义控制台应用程序的入口点。2 //3 4 #include "stdafx.h"5 #include <iostream>6 using namespace std;7 8 int main()9 { 10 bool a true; //真 存在的 非零 1 11 bool b false;//假 不存在 零 0 12 cout << …

性能优化杂记

webpack 开发、生产环境配置不同的webpack配置文件 生产环境删除devServer&#xff08;不需要启webpack devServer&#xff09; 告诉webpack&#xff0c;生产、开发分别要对应哪个配置文件 开发环境下也能看到打包的结果 npm run dev:build npm run dev 只会把打包生产…

算法 --- 冒泡排序、选择排序、插入排序的js实现

冒泡排序: function bubbleSort(arr){let i arr.length;while(i >0){for(let j 0; j< i; j) {let pos 0;if(arr[j] > arr[j1]) {pos j;let temp arr[j];arr[j] arr[j1];arr[j1] temp;}}i pos;}return arr; } var arr [3,44,38,5,47,15,36,26,27,2,46,4,19,5…

appium--每次启动会重新安装的问题(没试过)

有人说加这个 最后 大神说 在appium哪里就可以设置了 对&#xff0c;第一个不勾选就不会安装了【经理】[Java]大连●Messi_Z(726862194) 15:54:10把这些东西全去掉就好了转载于:https://www.cnblogs.com/kaibindirver/p/8205031.html

爬虫从入门到放弃 - 纯新手学习-爬虫基本原理

1.什么是爬虫&#xff1f; 请求网站并提取数据的自动化程序 请求&#xff1a;客户端向服务端发送请求获得网页资源&#xff0c;是一段html代码&#xff0c;包含html标签和一段信息。 提取&#xff1a;提取出想要的信息&#xff0c;然后将结构化的数据存储到文本 自动化&#xf…

ES5-11原型与原型链深入、对象继承

原型 谁调用&#xff0c;this就指向谁&#xff0c;当实例对象有该属性时&#xff0c;不会去原型上查找 创建对象的两种方法&#xff1a;字面量、new Object&#xff08;&#xff09;一般不用后面的二者创建出来的对象没有差异 Object.create() var 实例 Object.create(对象…

算法 --- 希尔排序、归并排序、快速排序的js实现

希尔排序: function shellSort(arr) {let len arr.length;let temp, gap 1;while(gap < len/3) {gap gap*3 1}while(gap >1) {for(let i gap;i< len; i) {temp arr[i];for( var j i-gap; j> 0 && arr[j] > temp; j - gap) {arr[j gap] arr[j];}…

苹果和虫子问题C++

如果需要转载&#xff0c;请注明出处&#xff1a;http://www.cnblogs.com/wongyi/p/8205305.html 最近在给小朋友补奥数课&#xff0c;顺便看了几道题目&#xff0c;觉得写出来会比较集中&#xff0c;整理一下哈哈哈。 问题如下&#xff1a; 苹果和虫子&#xff1a; 你买了一箱…

SQL SERVER 打开脚本报“未能完成操作,存储空间不足”

使用用SQLCMD命令行。 1、快捷键&#xff1a;winR 2、输入cmd​&#xff0c;确定 3、输入命令&#xff1a;sqlcmd -S <数据库服务器名称> -i C:\<脚本文件路径>.sql 例&#xff1a;sqlcmd -S lgsp_PC -i D:\test.sql P.S.1:最好在你的脚本中使用:use 数据库名(你要…

ES5-12 【utils】继承深入、call、apply、圣杯模式、模块化

继承深入 这两种方式继承不够合理&#xff08;为什么&#xff09; 将实例作为子类的原型 在子类的构造函数内部借用父类的构造函数 将父类的原型作为子类的原型&#xff08;会修改父类的原型&#xff09; css圣杯布局&#xff08;左右宽度固定、中间自适应&#xff09…

vue实现星级评价效果

希望对你们有用&#xff0c;已经自己试过可以的才发布出来的 效果如下&#xff1a; html&#xff1a; <template> <div class"evaStar"> <ul class"star"> <li v-for"(itemClass,index) in itemClasses" :class"itemC…

算法 --- 二叉树查找树的先序(中序、后序)遍历的js实现

结点: function Node(data, left, right) {this.data data;this.left left;this.right right;this.show show; }显示树的数据: function show(){return this.data; }二叉查找树: // Binary Search Tree function BST(){this.root null;this.insert insert; }添加结点到…

第三周学习

一直在练车&#xff0c;没有学习转载于:https://www.cnblogs.com/wj1998/p/9668534.html

IDEA的十大快捷键

Intellij IDEA中有很多快捷键让人爱不释手&#xff0c;stackoverflow上也有一些有趣的讨论。每个人都有自己的最爱&#xff0c;想排出个理想的榜单还真是困难。以前也整理过Intellij的快捷键&#xff0c;这次就按照我日常开发时的使用频率&#xff0c;简单分类列一下我最喜欢的…