在先前的筆記中,我們談到可以使用 function constructor 來建立物件,同時我們也提到 function constructor 這種概念是用來模仿 Java 語言而產生的(參考:[筆記] 談談 JavaScrip t中的 function constructor 和關鍵字 new),在其它的程式語言中,會用 class 這個關鍵字來設定該物件要長什麼樣子,然後透過關鍵字 new 來建立物件。
然而,和其他程式語言不同的地方在於,JavaScript 實際上使用的是 prototypal inheritance 而不是 classic inheritance,所以為了讓...
2016年6月29日
[筆記] 談談 JavaScript 中 for ... in 這個 function
在 JavaScript 中有一個非常常用到的函式 for ... in 迴圈,for...in 的用法和 Array.prototype.forEach 很像,但它可以針對**物件(Object)或陣列(Array)**來使用。
for in 針對物件的基本使用
讓我們先來看一下下面這個例子:
var john = {
firstName: 'John',
lastName: 'Doe'
};
for (var prop in john) {
console.log(prop + ':' + john[prop]);
}
我們建立一個物件名稱為...
2016年6月28日
[筆記] 談談 JavaScript 中內建的 function constructors 及應注意的地方
在這篇筆記中讓我們來看一些JavaScript中內建的 function constructors。
new Number()
new Number();
首先,讓我們輸入:
var num = new Number(3);
console.log(num);
console.log(Number.prototype);
從 new 這種用法我們可以理解到 Number 是 JavaScript 中內建的一個 function constructor,也就是說它有內建的 prototype 在內,而且很重要的是,因為它是透過 function construct...
2016年6月22日
[筆記] 談談 JavaScript 中的 function constructor 和 prototype 的建立
在上一篇筆記中我們說明了如何透過函式建構式(function constructor)搭配關鍵字 new 來建立物件,但其實這樣只學了一半,在這篇我們會補齊另一半,說明 function constructor 如何用來設定該物件的原型(prototype)。
我們之前有提到,在 JavaScript 中的函式其實也是一種物件,其中包含一些屬性像是該函式的名稱(Name)和該函式的內容(Code),但其實 function 這裡面還有一個屬性,這個屬性稱做 prototype,這個屬性會以空物件的型式呈現。
除非你是把 function 當做 function constructor...
[筆記] 談談 JavaScript 中的 function constructor 和關鍵字 new
在前幾篇的筆記中,我們已經對於物件(object)、原型(prototype)、繼承(inheritance)和原型鏈等等有更多的了解,現在讓我們來更深入的談論一下JavaScript中建立物件的方法。
先前我們有說明使用 object literal,也就是大括號的方式來建立物件,或者是使用 new Object( ) 的方式,但除此之外,我們還可以使用**函式建構式(function constructor)**的方式來建立物件。但在開始深入了解之前,讓我們先來簡單談一下 JavaScript 發展的歷史,如此我們將更清楚為什麼會使用這樣的方式。
new 和 JavaScript...
2016年6月20日
[筆記] JavaScript 中任何東西的 prototype 到最後都是物件
這篇筆記延伸上一篇所提到的原型(prototype)的概念,說明了在 JavaScript 當中,所有的東西(字串、數值、布林值、函式、陣列、物件)的 prototype 的最後都是物件!
什麼意思呢?
假設我們現在分別建立物件、函式和陣列:
// Object
var a = {
name:'pjchender'
}
// function
var b = function(){
console.log('Hello');
}
// Array
var c = ['this','is','an','array'];
// string
var d...