构造函数方法有对象方法、类方法、原型方法
function func(name){ this.name=name; this.ff=function(){ //对象方法 console.log(this.name); }; } func.ff2=function(name){//类方法 console.log(name); } func.prototype.ff3=function(){//原型方法 console.log(this.name); };
首先来看直接调用,这种情况下只有类方法能直接使用。
func.ff(); //vm1239:12 uncaught typeerror: func.ff is not a function func.ff2('jack');//jack func.ff3();//uncaught typeerror: func.ff3 is not a function
然后来看下new出新的实例,这种情况下,实例方法和原型方法都可以用,但是类方法不能用。new出来的实例会包含实例方法和属性,然后实例的原型上会有原型方法,所以这二者可以用。
var nff=new func('jack'); nff.ff(); //jack nff.ff2('jack');//vm1257:12 uncaught typeerror: nff.ff2 is not a function nff.ff3('jack');//jack
总结:
1.类方法是不需要进行实例化就可以使用的方法;反而实例化之后,类方法在实例中不可用。
2.对象方法和原型方法,只有实例化之后才可以使用。
如对本文有疑问, 点击进行留言回复!!
【JavaScript笔记(一)】万丈高楼平地起 - 基本概念篇
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
网友评论