JavaScript函数原型链

Function的使用

任何函数都是由Function函数构造出来的,Function的使用方法如下。
var func = new Function(arg1,arg2,arg3,…,methodBody);
Function中的所有方法都是字符串类型,methodBody表示方法体,也是字符串类型。

//使用Function构造如下函数
/*
function func(a){
    console.log(a);
}
*/

var func = new Function("a","console.log(a)");

//使用Function构造如下函数
/*
function foo(){
    if(arguments.length == 0){
        return null;
    }else{
        var max = 0;
        for(var i = 0;i<arguments.length;i++){
            if(arguments[i] > max){
                max = arguments[i];
            }
        }
        return max;             
    }
}
*/

var fun = new Function("if(arguments.length == 0){"+
                    "return null;"+
                "}else{"+
                    "var max = 0;"+
                    "for(var i = 0;i<arguments.length;i++){"+
                        "if(arguments[i] > max){"+
                            "max = arguments[i];"+
                        "}"+
                    "}"+
                    "return max;"+              
                "}");

由此可见,任何函数都可以有Funciton构造,同样的,任何函数都是由Function构造。

foo()函数的原型链

foo()也是一个对象,他也是由Object.prototype派生,构造器为Function,如下为foo()的原型链图。

这里写图片描述

foo由构造函数Function构造,那么Function又是由谁构造呢?Function构造自己。
我们要记住的是,任何函数都由Function构造,包括Object的构造函数。
容易混淆的是:获取一个对象的构造函数,当这个对象是原型对象的时候,获取的构造函数是与之名称相同的函数,如果不是原型对象的时候,那么获取的构造函数就从原型中去查找,即构造该对象的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值