因為在工作中看到bind,搞了很久之後才發現自己根本把bind和apply、call搞混了,決定先把這個部分給搞清楚。
前言
當我們在建立一個物件或函式(特別的物件)時,除了我們給他的東西以外,JavaScript還會同時給它三個方法:bind、call、apply。
Not a winner, not a loser.
因為在工作中看到bind,搞了很久之後才發現自己根本把bind和apply、call搞混了,決定先把這個部分給搞清楚。
當我們在建立一個物件或函式(特別的物件)時,除了我們給他的東西以外,JavaScript還會同時給它三個方法:bind、call、apply。
因為正在深入了解 JavaScript這個語言,因為已經下定決心要先熟練這個語言了,應該要好好瞭解並熟悉一些更深入的概念和用法才是,並且把自己的筆記放在這,希望也能有些用處。
let person = {
firstName: 'Jimmy',
lastName: 'Huan',
get fullName(){
return this.firstName + ' ' + this.lastName;
},
set fullName(name){
let words = name.split(' ');
this.firstName = words[0] || '';
this.lastName = words[1] || '';
}
}
let person = {
firstName: 'Jimmy',
lastName: 'Huan'
}
Object.defineProperty(person, 'fullName', {
get: function(){
return this.firstName + ' ' + this.lastName;
},
set: function(name) {
var words = name.split(' ');
this.firstName = words[0] || '';
this.lastName = words[1] || '';
}
});
console.log(person.fullName);// 'Jimmy Huan'
person.fullName = "Kobe Bryant"; //'Kobe Bryant'
console.log(person.firstName); // 'Kobe'
console.log(person.lastName); // 'Bryant'
研究了 Webpack 一段時間,決定將 Webpack 從 React 獨立出來啦! 自己則是在實務上剛好遇到 CSS 檔內有使用 url() ,結果 Webpack 就會說他不知道怎麼處理這些 jpg 、 png 、 ttf 等等,像這樣:

WebRTC – 是 「Web Real-Time Communication」 的縮寫,是用於瀏覽器進行實時對話交流的 API ,但是如果直接用 WebRTC 原生的 API 工作的話,有很多複雜的工作要自己來,因此也有高手開發 WebRTC 相關的 Library ,而本次要介紹的就是 Temasys 公司的 SkylinkJS!
*補充:simpleWebRTC – Library 之一
今天不寫技術文章,來寫個隨意的心得好了,最近的技術文章越來越短了,畢竟技術相關的要一直整理資料,花費的時間相對來說比較長,而最近每個禮拜一到三下班後都有讀書會,讀書會一結束馬上躺床睡覺,只能說體虛真的是影響很大,當初沒有直接走上程式之路,也是自覺身體不適合長時間作業,不過轉念一想,要讓我連假日都能汲汲營營地學習的東西大概也只剩下寫程式了吧。
學習程式的網站不管是國內還國外都有如雨後春筍般不斷冒出,
這點我對於前端框架與技術也有同樣的感覺(攤),這邊介紹的網站大部分都是英文,只有少部分是中文的學習內容,如果想研習程式相關課程,會英文與不會英文所能攝取的知識量大概就是天與地的差別這麼大,強烈建議各位多多學習英文,且年紀越輕學習外語的效果越佳,學習英文可不是只對程式有幫助,對於擴展人生視野也是非常重要的呢!
之前有寫過一篇文章簡單介紹如何用 Heroku 部署 App ,現在要教各位如何使用 mLab – MongoDB 插件,這裡會用到一些 Mongoose 指令,如果不清楚的話,可以看一下我的 Mongoose 指令,有問題也歡迎留言。
順便跟各位推薦一個學習網站:TreeHouse
這個算是目前包月的線上學習網站內容最豐富的一個,這篇文章也是上了「Adding MongoDB to your Node App on Heroku」這堂課才生出來的,強烈推薦給各位,之後應該也會發一篇關於各種學習平台的使用心得的文章!
2020/05/05 更新
忽然發現這篇文章的點閱率也不低,所以來更新一下這一小段,並且讓文章內容更貼近更新後的Heroku介面,個人目前最推薦的學習網站是六角學院,這個網站從前端教學起家,現在開始慢慢地跨足後端及其他領域,售後服務也非常好,持續更新人才牆及線上直播等服務,而且又是全中文資源,推薦給各位!
Sass 除了能讓我們寫巢狀結構外,還能夠定義變數,非常簡單,以下範例大家應該可以很快能理解 Sass 變數的用法!
// 不使用變數
.header a {
color: blue;
}
.menu a {
color: #666;
}
.nav a {
color: blue;
}
.footer a{
color: #666;
}
Sass 是以 Ruby 所編寫的編譯器,也是一種 CSS 的擴展語法, Sass 編譯器能將 Sass 及 Scss 檔轉譯為 CSS 檔,就像 CoffeeScript 需要先轉譯成 JavaScript 一樣,瀏覽器看到你直接餵了 Sass 檔給它吃,它可是會嚇個半死呢!
前面提到,Sass 編譯器看得懂兩種語法: Sass 和 Scss , Sass 是較舊的語法, Scss 是較新的,而且 Scss 內可以使用 CSS 語法,也就是說將 CSS 的語法複製到 Scss 檔內是可以編譯的,但 Sass 是用縮排取代大括號,因此直接複製 CSS 到 Sass 檔內是會錯誤的,雖然 Sass 因為省略的大括號和分號,減少了打字的次數,不過 Scss 和 原本的 CSS 寫法比較相近,又是比較新的語法,所以以下和之後的內容都會以 Scss 語法為主喔!(實際上請依各位喜好選擇 Sass 或 Scss)
其實本來是要查一下 Webpack 的 Sass 相關設定,後來就想說乾脆學一下好了,雖然我是從前端開始學習,但美感不好的我 CSS 並沒有多熟悉,不過理解一種新的語言也是一種樂趣,而且光這次的主題:巢狀結構,就已經讓寫 CSS 更像寫程式了,如果你還是重複同樣的 Class Name 在編輯 CSS 檔,強烈建議抽空學習一下 Sass ,對常常在編寫 CSS 的開發者可是受用無窮的喔!