ES类的使用

静态(类)、实例、原型属性与方法

ES5

Baby 类

//对象构造函数
function Baby(name) {
var className = "Baby";
//实例属性,每个实例私有,在对象实例化后调用,实例属性在对象实力化后创建
this.name = name;
this.weight = "3kg";

this.hello = function () {
console.log(this.name);
console.log(this.msg()); //使用原型方法扩充的方法可以在类内部使用
console.log(this.sex); //使用原型方法扩充的属性可以在类内部使用
console.log(Baby.age, this.age); //静态属性调用时格式为[对象.静态属性]
}; //对象方法
}

//类方法 (实际是静态方法直接调用),只有类才能访问类方法,实例不能访问 ,在类方法中通过this只能访问类属性不能访问其他属性,即在本例中,Run方法只能访问到this.age
Baby.Run = function () {
console.log("跑起来!!!");
};

//原型方法,如果原型方法当作静态方法直接调用时,this.name无法被调用
Baby.prototype.msg = function () {
console.log("我叫:" + this.name);
};

//类属性 在类的外部。公有静态属性不能使用 【this.属性】,只能使用 【对象.属性】 调用,只有类才能访问类属性,实例不能访问
Baby.age = 20;

//原型属性,所有实例共有,【this.属性】这种写法访问时,先会访问实例对象属性,没有实例对象属性就会访问原型属性 ,也可以当成公有静态属性使用【对象.prototype.原型属性。
Baby.prototype.sex = "男娃娃";

使用

//实例方法和原型方法需要实例化对象后才可以使
var bob = new Baby("bob");
Baby.name;
//"Baby" :每一个类都有一个基本的name属性

bob.name;
//"bob"

Baby.weight;
//undefined

bob.weight;
//"3kg"

Baby.hello();
//Uncaught TypeError: Baby.hello is not a function

bob.hello();
// bob
// 我叫:bob
// undefined :this.msg没有返回所以undefined
// 男娃娃
// 20 undefined

Baby.Run(); //跑起来!!!
//类方法也是静态方法,可以直接使用 【对象.静态方法()】

bob.run(); // TypeError: bob.run is not a function

Baby.msg();
// Uncaught TypeError: Baby.msg is not a function

Baby.prototype.msg();
// 我叫:undefined
//原型方法当成静态方法使用时【对象.prototype.方法()】

bob.msg();
// 我叫:bob
//原型方法必须实例化对象

bob.age;
// undefined
//错误,公有静态属性只能使用 【对象.属性】调用

Baby.age;
// 20

Baby.prototype.sex;
// 男娃娃
//原型属性当作静态属性使用时【对象.prototype.方法()】

Baby.sex;
// undefined

bob.sex;
// 男娃娃

ES6

阅读全文

Number相关基础操作

保留小数

四舍五入

toFixed

(2.123123123).toFixed(3); // 输出结果为 2.123
(2.123923123).toFixed(3); // 输出结果为 2.124

toLocaleString
toLocaleString 默认保留 3 位小数,且会产生千位分隔符

(12332.123923123).toLocaleString(undefined, {
minimumFractionDigits: 5,
maximumFractionDigits: 6,
});
// 输出结果为 '12,332.123923'

可通过 minimumFractionDigits,maximumFractionDigits 来指定保留参数的长度

(2.123923123).toLocaleString(undefined, {
minimumFractionDigits: 5,
maximumFractionDigits: 6,
});
// 输出结果为 '2.123923'

不取舍

阅读全文

计算机字符储存与编码

数据存储单位

计算机数据存储的常见单位为 bit byte word KB MB GB TB 等额。
bit byte word 即位、字节、字。
各单位的换算规则为:


Bit = 1/0 (基本存储单位)

Byte = 8 bits

Word = 16, 32, 64 bits(取决于计算机位数)

$1 kilobyte = 1 KB = 2^{10} bytes = 1024 bytes$

$1 Megabyte = 1 MB = 2^{20} bytes = 1,048,576 bytes$

$1 Gigabyte = 1 GB = 2^{30} bytes = 1,073,741,824 bytes$


位是最小的存储单位,每一个位存储一个 1 位的二进制码。
一个字节由 8 位组成。
字通常为 16、32 或 64 个位组成,取决于计算机 CPU 一次性处理数据的位数,通常由寄存器决定。

字符集

字符收集

阅读全文

Vue基础使用

transition

基本使用

将 transition name 命名后书写对应的类来自动生成的对应的类

<transition name="fade">
<p v-if="show">hello</p>
</transition>

<style>
.fade-enter-active,
.fade-leave-active {
transition: width 3s, opacity 1s;
width: 100%;
}
.fade-enter,
.fade-leave-to {
width: 0;
display: none;
opacity: 0;
}
</style>

使用限制

阅读全文

CentOS利用systemd开启后台进程

简介

systemd 是 Linux 中系统与服务管的系列套件,其中 d 沿用传统指代 daemon。
systemd 提供多个命令行工具,最基本的为 systemctl
systemd 体系庞大,提供繁杂的功能,其中一个常用的功能就是开启后台服务。

创建新服务

创建服务文件并打开

vi /etc/systemd/system/foo.service

输入以下内容

[Unit]
Description=My custom service
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/brook server --listen :992 --password xxxx
Restart=always
User=root

[Install]
WantedBy=multi-user.target

[Unit]

提供服务基础信息
Description 为描述信息
After
服务启动的前置条件

[Service]

提供启动服务的相关信息

[Install]

WantedBy
定义服务被谁触发

Defines which service triggers the custom service if enabled with systemctl enable. This is mostly used for starting the custom service on boot. In this example, foo.service uses multi-user.target, which starts foo.service when systemd loads multi-user.target on boot.

开启服务

阅读全文

康定周边2日

出发前准备

时间

本路线适合于成都出发,周末游玩,2-3 天时间,2 天最好在周五晚出发。
周五晚出发建议在泸定留宿,直接前往磨西古镇也可,需要多一个小时车程。
注意 3 岁以下小朋友容易高反,带过去需要有人专职陪伴,备足氧气瓶,折多山上和去沿途有氧气卖。

物品清单

阅读全文

ES对象创建

工厂模式

工厂模式解决了创建多个对象的问题,但是没有解决对象识别问题(创建对象后其父对象?)

function person(name) {
var p = new Object();
p.name = name;
return p;
}

var me = person("skyline");
me.name; // 'skyline'

构造函数模式

实现

阅读全文

VSCode相关问题汇总

作者水平有限,文章仅供参考,不对的地方希望各位及时指正,共同进步,不胜感激

VSCode 相关问题汇总

Snippets

markdown 文件 Snippets 不生效

问题描述
通过 File -> Preferences -> User Snippets -> Markdown
写相关代码块如下
markdown.json

{
// Place your snippets for markdown here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
"JS code block": {
// "scope": "md,markdown",
"prefix": ":cjs",
"body": [
"```${1:js}",
"$2",
"```"
],
"description": "JS code block"
},
"PY code block": {
// "scope": "md,markdown",
"prefix": ":cpy",
"body": [
"```${1:python}",
"$2",
"```"
],
"description": "PY code block"
}
}

在 markdown 文件中敲击:cjs 不自动提示。
解决方案
尝试 CTRL + Space 强制开启。
在用户配置setting.json中添加如下配置项

"[markdown]": {
"editor.quickSuggestions": true
}

Copyright © 2017 - 2024 鹧鸪天 All Rights Reserved.

skyline 保留所有权利