麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > WEB開發 > 正文

深入理解javascript原型和閉包(2)——函數和對象的關系

2024-04-27 15:14:20
字體:
來源:轉載
供稿:網友

原文地址:http://www.cnblogs.com/wangfupeng1988/p/3978035.html

上文(理解javascript原型和作用域系列(1)——一切都是對象)已經提到,函數就是對象的一種,因為通過instanceof函數可以判斷。

var fn = function () { };console.log(fn instanceof Object);  // true

對!函數是一種對象,但是函數卻不像數組一樣——你可以說數組是對象的一種,因為數組就像是對象的一個子集一樣。但是函數與對象之間,卻不僅僅是一種包含和被包含的關系,函數和對象之間的關系比較復雜,甚至有一點雞生蛋蛋生雞的邏輯,咱們這一節就縷一縷。

 

還是先看一個小例子吧。

        function Fn() {            this.name = '王福朋';            this.year = 1988;        }        var fn1 = new Fn();

上面的這個例子很簡單,它能說明:對象可以通過函數來創建。對!也只能說明這一點。

但是我要說——對象都是通過函數創建的——有些人可能反駁:不對!因為:

var obj = { a: 10, b: 20 };var arr = [5, 'x', true];

但是不好意思,這個——真的——是一種——“快捷方式”,在編程語言中,一般叫做“語法糖”。

做“語法糖”做的最好的可謂是微軟大哥,它把他們家C#那小子弄的不男不女從的,本想圖個人見人愛,誰承想還得到處跟人解釋——其實它是個男孩!

話歸正傳——其實以上代碼的本質是:

復制代碼
        //var obj = { a: 10, b: 20 };        //var arr = [5, 'x', true];        var obj = new Object();        obj.a = 10;        obj.b = 20;        var arr = new Array();        arr[0] = 5;        arr[1] = 'x';        arr[2] = true;復制代碼

而其中的 Object 和 Array 都是函數:

console.log(typeof (Object));  // functionconsole.log(typeof (Array));  // function

所以,可以很負責任的說——對象都是通過函數來創建的。

 

現在是不是糊涂了—— 對象是函數創建的,而函數卻又是一種對象——天哪!函數和對象到底是什么關系?。?/p>

別著急!揭開這個謎底,還得先去了解一下另一位老朋友——PRototype原型。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蜜桃91麻豆| 黄色免费播放网站 | 精品久久久久久久久久 | 久久精品视频在线看99 | 欧美成人精品一级 | 免费网址黄 | 吾色视频| 日韩精品一区二区三区中文 | 91女上位 在线播放 性欧美日本 | 精品一区二区免费 | 欧美亚洲国产一区二区三区 | 日本欧美一区二区三区视频麻豆 | 亚洲国产精品一区 | 国产91九色在线播放 | 久草在线视频在线 | 国产成人av在线播放 | 久久久久久99 | 久久久国产精品电影 | 黄色网址免费入口 | 亚洲最大中文字幕 | 日韩视频观看 | 亚州欧美视频 | 久久久免费 | 91国内精品久久久久免费影院 | 精品久久久av | 久久色在线 | h色网站在线观看 | 蜜桃传媒视频麻豆第一区免费观看 | 欧美国产日韩在线观看成人 | 婷婷久久综合九色综合色多多蜜臀 | 国产精品久久久久久久久久三级 | 亚洲第一精品在线 | 久久777国产线看观看精品 | 中文字幕在线观看日韩 | 欧美视频一二区 | 136福利视频 | 欧美福利视频一区二区三区 | 国产精品成人av片免费看最爱 | 日本人乱人乱亲乱色视频观看 | 一级免费观看 | h视频免费观看 |