最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

有關于JS輔助函數(shù)inherit()的問題

 更新時間:2013年04月07日 09:17:14   作者:  
本篇為大家介紹有關于JS輔助函數(shù)inherit()的一些問題。

最近在閱讀《JavaScript權威指南》(第六版)在第六章P122有這么一段代碼:

復制代碼 代碼如下:

// 返回一個繼承自原型對象proto的屬性的新對象
// 這里可以用到ES5的Object.create()函數(shù)
function inherit(proto) {
//proto是一個對象,但不能是null
if(proto == null) throw TypeError();
if(Object.create) return Object.create(proto); //如果Object.create()存在,使用它
var t = typeof proto; //否則進一步檢查
if(t!=='object' && t!=='function') throw TypeError();
var F = function() {}; // 定義一個空構造函數(shù)
F.prototype = proto; // 將其原型屬性設置為proto
return new F(); // 使用F()創(chuàng)建proto的繼承對象
}

很明顯輔助函數(shù)的用途是創(chuàng)建一個繼承父類原型的新對象

問題

在關于下面的這句判斷時,一時無法理解

復制代碼 代碼如下:

var t = typeof proto; //否則進一步檢查
if(t!=='object' && t!=='function') throw TypeError();

我們的印象中原型對象應該是個Object或者直接是字面量,那么傳遞的參數(shù)類型會有“function”類型情況嗎

理解

函數(shù)也是對象,也可以有自己的屬性和方法。等等,這不是我們的靜態(tài)屬性和方法啊!這里是指把函數(shù)看成可以添加屬性的對象

復制代碼 代碼如下:

// 測試傳遞function類型
var func = function() {};
func.text = 'good work';
func.getText = function() {
return func.text;
};
console.log(typeof func); // 'function'
// 傳遞function類型,返回以func為原型的新對象
var subFunc = inherit(func);
console.log(subFunc.getText()); // 輸出:'good work'

好吧,一個證明說明。原來是可以傳遞'function'類型的

 

相關文章

最新評論

武义县| 巨鹿县| 鸡西市| 合阳县| 依兰县| 南陵县| 大名县| 美姑县| 吉木萨尔县| 太原市| 宜兰县| 扶沟县| 怀柔区| 永春县| 金塔县| 商河县| 万山特区| 福州市| 肃北| 遂平县| 麻江县| 奉贤区| 宜阳县| 麦盖提县| 澄江县| 原阳县| 翁源县| 肃南| 常熟市| 六盘水市| 德令哈市| 中牟县| 称多县| 深水埗区| 延寿县| 灯塔市| 青阳县| 太康县| 南昌市| 仪征市| 平乡县|