Heading for the future

JSz中的静态方法和实例方法的分析

  我又回来了,最近忙着喝枸杞,没来写博客感觉很有负罪感,今晚我来写一点小小的知识点

  可能我们在用形如Array.of()的方法时会产生一些疑问,为什么我们能不实例化直接使用Array上的of()方法呢,其实原理很简单,就是of()方法时Array的静态方法,所以我们才能直接Array.of()来使用

可能我这个表述不是很清楚,没事,下面我们来通过一个栗子来看一下到底是怎么回事

//首先我们来模拟一个Array的构造函数
function newArray(){}
//再给这个构造函数原型对象上添加方法
newArray.prototype.shiyan = function(){
    console.log("我是实验函数")
}

// 现在我们这样调用的时候
newArray.shiyan();

这木写函数用形如Array.of()调用的时候会报一个错误

这样显然不符合我们想做成Array.of()这种调用方式的要求,别急,我们来试试另一种方法

静态函数:

//首先我们来模拟一个Array的构造函数
function newArray(){}

//我们现在不再去给构造函数的原型对象上添加方法
// 而是给构造函数上添加静态方法
newArray.of=function(){
    console.log("我是构造函数的静态方法");
}

//现在我们再来试试能不能通过类似于Array.of()方法调用
newArray.of();

 

我们可以看到现在我们能通过形如Array.of()调用到方法了,真的是美滋滋。

好了,今天先就这样吧,大家下次见

posted @ 2018-09-25 19:14  一只菜鸟攻城狮啊  阅读(564)  评论(0编辑  收藏  举报