---
# System prepended metadata

title: 筆記_javascript this 實作練習
tags: [javascript]

---

# 筆記_javascript this 實作練習
----
###### tags: `javascript`

建立物件
```javascript=
var object = {
    name: "object物件",
    age: "2020-03-05",
}
```

忘記寫入方法(因為用 開發人員工具寫)
沒關係javascrupt這樣再加入就可以了
```javascript=
object.method = function(){
    console.log("較用物件方法");
    console.log('物件名字' + this.name);
}
```

只要打上物件名字就可以看到屬性跟方法

![](https://i.imgur.com/0gRmAXn.png)


建立全域變數跟function
```javascript=
var name = '新的全域名稱';

function thisName(){
console.log(this.name);

}
```

叫用

```javascript=
console.log(thisName());
// '新的全域名稱'
```

然後把物件裡的方法 換成 全域方法
this 是誰呢??

```javascript=
object.method = thisName;

console.log(object.method());
// object物件
```
但可以看出來物件方法已經被換掉
但是this卻沒有感變
因為是叫用物件方法

也就是
>> this 大部分取決於 它在哪個物件下被呼叫，也就是本段落主要介紹的「物件的方法調用」這個觀念佔了 絕大部分 的 JavaScript 實作時的 this 運作

[JavaScript This 系列文：this 與物件的關係](https://wcc723.github.io/javascript/2019/03/18/JS-THIS/)





