验证js中Object和Function的关系的代码

发布时间:2020-06-02编辑:脚本学堂
开头语:js函数具有对象的全部特征,你完全可以把函数当对象调用。

其实,函数就是对象,只不过比一般的对象多了一个括号“{}”操作符,这个操作符用来执行函数的逻辑,即函数本身还可以被调用,一般对象却不可以被调用,除此之外完全相同”。

下面我们以价格的代码来论证一下javascript内置Object和Function的关系。
  
1、Function就是Object,Object就是Function

复制代码 代码如下:
alert(Function instanceof Object); // true
alert(Object instanceof Function); // true
 

如你所看到的那样,通过instanceof操作符,函数就是对象,对象就是函数。

2、既然1是成立的,那么Function扩展的原型方法,Object能“得到”吗?

复制代码 代码如下:
alert(Object.funcMethod); // undefined
Function.prototype.funcMethod = function() {
/*some function method code here*/
}
alert(Function.funcMethod);
alert(Object.funcMethod);
alert(Function.funcMethod === Object.funcMethod); //true
 

你没有看错,我们为Function扩展的原型方法funcMethod,Object实现了神奇的“不劳而获”。

3、既然1和2都成立,那么Object扩展的原型方法,Function能“得到”吗?!

复制代码 代码如下:
alert(Function.objMethod); // undefined
Object.prototype.objMethod = function() {
/*some object method code here*/
}
alert(Object.objMethod);
alert(Function.objMethod);
alert(Function.objMethod === Object.objMethod); //true or false?

上面代码中最后有个问号的那一行是弹出true还是false呢?
聪明的,你懂的,哈,,,大家肯定已经知道结果了,如果还是执迷不悟,那么亲测下就知晓了。