色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript學習筆記六:prototype的提出

系列文章導航:

JavaScript學習筆記一——數(shù)據(jù)類型

JavaScript學習筆記二——函數(shù)

JavaScript學習筆記三——作用域

JavaScript學習筆記四——Eval函數(shù)

JavaScript學習筆記五——類和對象

JavaScript學習筆記六:prototype的提出

Javascript學習筆記七——原型鏈的原理

Javascript學習筆記八——用JSON做原型

Javascript學習筆記九——prototype封裝繼承

Javascript學習筆記十——網(wǎng)頁運行原理

Javascript學習筆記十一——包裝DOM對象

Javascript學習筆記十三——關于響應事件

Javascript學習筆記十二——Ajax入門


  首先我們繼續(xù)上文的代碼,我們來把這段代碼延伸一下:

    <script type="text/Javascript">        var Person = function (name, age) {            this.name = name;            this.age = age;            this.Introduce = function () {                alert("My name is " + this.name + ".I'm " + this.age);            };        };        var person1 = new Person("飛林沙", 21);        var person2 = new Person("kym", 26);        alert(person1.Introduce == person2.Introduce);    script>

 

  結果彈出false。也就是說,這兩個對象的方法是不同的方法。那么我們知道,在C#中,每個對象會維護著一個方法表,可是方法表應該指向同一塊地址。如果是這樣的話,那當我們聲明了100個對象,是不是要建立100個對象拷貝,對空間是不是一個很大的浪費呢?

  于是我們就想了這樣的解決辦法,用prototype:

    <script type="text/Javascript">        var Person = function (name, age) {            this.name = name;            this.age = age;        };        Person.prototype.Introduce = function () {            alert("My name is " + this.name + ".I'm " + this.age);        }        var person1 = new Person("飛林沙", 21);        var person2 = new Person("kym", 26);        alert(person1.Introduce == person2.Introduce);    script>

 

  這樣就可以了。所以你還會再說是否用prototype都是一樣的么?其實我以前也是這么理解的,在這次偶然的試驗中看到了這個問題。

it知識庫JavaScript學習筆記六:prototype的提出,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 霍山县| 东源县| 孟连| 龙江县| 平阳县| 邵东县| 视频| 嵊州市| 汝阳县| 综艺| 水富县| 阳信县| 碌曲县| 高雄县| 衡东县| 青海省| 理塘县| 芦山县| 叶城县| 寿光市| 石城县| 鄂尔多斯市| 鄂伦春自治旗| 云浮市| 双城市| 甘德县| 石渠县| 商洛市| 西城区| 古蔺县| 阿克陶县| 长宁区| 保靖县| 武强县| 田东县| 习水县| 文化| 通江县| 阿合奇县| 阳谷县| 进贤县|