转载:这样剖析JavaScript中的属性和方法,也许这样你就会更清楚
玩转JavaScript,你得有很扎实的基础,这些基础体现在哪里?其中一个最重要的点就是对JavaScript的属性和方法有足够的了解和认识。这里,我会带大家一起来彻底消灭这些盲点(对JavaScript属性和方法的分类还存在模糊的印象)。
首先来说一下属性:
在JavaScript中属性有四种类型:私有属性,原型属性,实例属性,类属性。
对于这四种属性的区别和使用,下面,我通过一个代码来讲一下。
上面这段代码中四个变量:x是私有属性,z是实例属性,y是类属性,m是原型属性。
接着来看一下属性的访问有何差别。
结果好理解,需要注意几点:1、私有变量只能在函数内使用。2、当实例属性和原型属性拥有相同变量时,先会访问实例属性,没有实例属性就会访问原型属性。3、如上面代码中变量y,只能类才能访问类属性,实例不能访问。
这么一搞,对属性多少就有了一个更完整的理解和印象了。接下来看一下方法就更好理解了。
来看一下方法:(静态方法,实例方法,内部方法)
一、静态方法(不能被实例对象调用)
上面f1就是定义了一个静态方法,实例无法访问。
二、实例方法(注意访问优先级)
在JavaScript中定义一个实例方法的方式有三种:构造函数中使用this,直接绑定在实例上,绑定在原型上。下面就通过一段代码来看一下。
上面这段代码展示了三种方式定义实例方法。执行顺序实例上绑定的优先级高于this上绑定的,this上绑定的高于原型上绑定的实例方法。
三、内部方法(只能内部调用)
上面这段代码定义了两个内部方法method1和method2。由运行结果可知,内部方法method1和method2只能在函数内部调用,外部通过实例对象无法找到该方法。
最后总结一下:
通过这篇文章,我们知道了属性的定义,属性分私有属性,原型属性,实例属性,类属性,这四种,它们各自是怎么定义,及访问原则。同时我们也知道了方法的定义,方法分静态方法,实例方法,内部方法三种,主要注意一下它们的调用,及实例方法的三种创建形式。