天天看點

JavaScript學習筆記023-對象方法0包裝對象0靜态屬性

Author:Mr.柳上原

  • 付出不亞于任何的努力
  • 願我們所有的努力,都不會被生活辜負
  • 不忘初心,方得始終

時間過得真快

轉瞬即逝

曾經以為過不去的坎

現在都快要遺忘了

歲月是把殺豬刀

果然

如此

前端也學了大半年了

距離node結課近在咫尺

又是一期課程畢業在即

願我們所有的努力

都不會被生活辜負

<!DOCTYPE html> <!-- 文檔類型:标準html文檔 -->

<html lang='en'> <!-- html根标簽 翻譯文字:英文 -->

<head> <!-- 網頁頭部 -->

<meat charset='UTF-8'/> <!-- 網頁字元編碼 -->

<meat name='Keywords' content='關鍵詞1,關鍵詞2'/>

<meat name='Description' content='網站說明'/>

<meat name='Author' content='作者'/>

<title>前端59期學員作業</title> <!-- 網頁标題 -->

<link rel='stylesheet' type='text/css' href='css/css1.css'/> <!-- 外鍊樣式表 -->

<style type='text/css'> /*内部樣式表*/

</style>

</head>

<body> <!-- 網頁主幹:可視化區域 -->

<script>
/*
對象方法:
object
*/
// 比較值是否相等
Object.is(1, "1"); // false 類似于===
// 注意點:此方法中,+0和-0不等,NaN和NaN相等

// 對象合并,合并對象的所有可周遊的值到第一個對象中
let obj1 = {a: 1, b: 2};
let obj2 = {c: 3, d: 4};
Object.assign(obj1, obj2); // obj1 = {a: 1, b: 2, c: 3, d: 4}

// 對象的鍵值
Object.keys(obj1); // ["a", "b"] 鍵
Object.values(obj1); // [1, 2] 值
Object.entries(obj1); // [["a", 1], ["b", 2]] 鍵值對

/*
靜态屬性:
隻能被類調用的屬性
*/
// es5 靜态屬性寫法
function MyClass(){};
// 靜态屬性
MyClass.say = function (){
console.log("這是靜态方法")
}
// es6 靜态方法寫法
class MyClass{
constructor(){
}
// static:靜态方法 es6沒有靜态屬性,隻有靜态方法
static say(){}
// 原型方法
add(){}
}

// es6 extends的super
class FatherClass{};
class MyClass extends FatherClass{
constructor(){
super();
super.xxx(); // 這裡調用的是父類的原型方法(FatherClass.prototype.xxx())
}
// constructor以外的super不能直接調用,可以挂載調用
static say(){
super; // 靜态方法的super指向父類(FatherClass),可以調用父類的靜态方法
}
add(){
super; // 原型方法的super指向父類原型(FatherClass.prototype),可以調用父類的原型方法
}
}

// 靜态屬性和普通屬性的差別
// 如果該方法面向的是目前類的所有執行個體,就使用原型方法
// 如果該方法面向的不僅僅隻是該類的對象,就使用靜态方法

// 包裝對象
let str1 = "123"; // 值類型
let str2 = new String(123); // 引用型
str1.num = 1; // 臨時産生一個對象,進行下一步操作前就消失了
sonsole.log(str1.num); // undefined 此處輸入時又臨時建立了一個對象

</script>

</body>

</html>           

複制