
1、不是原型链继承,只是借用构造函数,所以不能继承原型的属性和方法。
2、虽然构造函数中定义的属性和方法是可以访问的,但是每个实例都被复制了。
如果例子太多,方法太多,占用内存很大,那么方法就在构造函数中定义,函数的复用就无从谈起。
实例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | function Father() {
this .name = 'father'
this .speakName1 = function () {
console.log( 'speakName1' )
}
this .speakName2 = function () {
console.log( 'speakName2' )
}
this .speakName3 = function () {
console.log( 'speakName3' )
}
this .speakName4 = function () {
console.log( 'speakName4' )
}
}
Father.prototype.alertName = function () {
console.log( this .name)
}
Father.prototype.age = 21
function Children() {
Father.call( this )
}
let c1 = new Children()
c1.alertName()
console.log(c1.age)
console.log(c1.name)
c1.speakName1()
c1.speakName2()
c1.speakName3()
c1.speakName4()
console.log(Father.prototype.isPrototypeOf(c1))
console.log(c1 instanceof Father)
|
以上就是js使用构造函数的缺点,希望对大家有所帮助。更多js学习指路:js教程
推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。