一、this的指向
1.普通函式執行,內部this是指向全域物件window;
2.函式在定義的時候this是不確定的,只有在呼叫的時候才可以確定?;
3.如果函式作為一個物件的方法,被該物件所呼叫,那么函式內的this?則指向物件;
4.建構式中的this是一個隱式物件,類似一個初始化的模型,所有方法和屬性都掛載到了這個隱式物件身上,后續通過new關鍵字來呼叫,?從而實作實體化,
我們?分別舉例:
<script>
//1.普通函式執行
var str = "張三";
function func() {
console.log(this);//應該是全域window
console.log(this.str);
console.log("===============");
}
func();
//2.物件
var obj = {
name : "xiaolaio",
func:function () {
console.log(this);
console.log(this.name);
}
}
obj.func();
console.log("===================");
//3.建構式
function Fn() {
this.name = "xiaohu";
this.age = 45;
console.log(this);
}
//這個是函式呼叫,里面的this是window
Fn();
//這個就是建構式呼叫,里面的是物件
var p = new Fn();
console.log("======================");
</script>

二、物件的使用(增刪改查,遍歷)
<script>
//1.遍歷物件的屬性
var x1 = {
//屬性
"name":"xiaoming",
"age":23,
"sex":"male",
"dolt":function () {
console.log("我是code man");
}
}
//訪問物件的屬性
console.log(x1.name);
console.log(x1["name"]);//里面必須是字串
console.log("===============");
//遍歷物件for...in...
//使用for回圈是不管用的
for(var key in x1){
console.log(key);
console.log(x1[key]);
}
console.log("====================");
//2.洗掉物件的屬性,delete關鍵字
delete x1.age;
console.log(x1.age);//undefined
console.log("==========================");
//3.賦值(新增,修改都是支持的)
x1.age = 89;
console.log(x1.age);
</script>

三、基本型別和參考型別在堆疊中表示
1.基本資料型別又叫做值型別,在存盤的時候,變數存盤的是值本身,因為此叫做值型別,
String Number Boolean Null Undefined
2.復雜資料型別,在存盤時變數中存盤的僅僅是地址(參考),因此叫做參考資料型別,
?3.二者的區別:
JS中的變數都是存盤在堆疊記憶體中的,基本資料型別的值直接在堆疊記憶體中存盤,值與值之間是獨立存在的,修改一個變數不會影響到其他變數;
物件是保存在堆記憶體中的,每創建一個新的物件,就會在堆記憶體中開辟出一個新的空間,而變數存盤的是物件的記憶體地址(物件的參考)?,
四、原始碼:
D19_1_newOfOrigin.html
D19_2_UsageOfObject.html
地址:
https://github.com/ruigege66/JavaScript/blob/master/D19_1_newOfOrigin.html
https://github.com/ruigege66/JavaScript/blob/master/D19_2_UsageOfObject.html
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流,后臺回復“禮包”獲取Java大資料學習視頻禮包

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/58579.html
標籤:JavaScript
