首页 > 代码库 > 带不带protype的区别
带不带protype的区别
总结写在前面:
①:带有protype:表示类的扩展,必须new后才能使用。
②:不带protype:属于静态方法,直接调用即可。
html代码:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <script src="show.js"></script> 7 </head> 8 <body> 9 <script src="main.js"></script>10 </body>11 </html>
protype:
show.js代码:
1 window.meng = window.meng || {}; 2 (function () { 3 4 function Show(name) { 5 this._name=name; 6 } 7 Object.defineProperty(Show.prototype,"name",{ 8 get:function () { 9 return this._name;10 }11 });12 Show.prototype.showCloth=function () {13 console.log(this.name+"穿着皮大衣"); 14 };15 16 meng.Show=Show;17 18 19 })();
main.js代码:
1 (function () {2 3 var per=new meng.Show("meng");4 per.showCloth();5 6 })();
效果:
输出meng穿着皮大衣。
no protype:
show.js代码:
1 window.meng = window.meng || {}; 2 (function () { 3 4 function Show(name) { 5 this._name=name; 6 } 7 Show.showName=function () { 8 console.log("静态方法"); 9 };10 11 meng.Show=Show;12 13 14 })();
main.js代码:
1 (function () {2 3 // var per=new meng.Show("meng");4 // per.showCloth();5 6 meng.Show.showName();7 })();
效果:
输出:静态方法。
自己的认知:带有protype的扩展方法在js里面举足轻重,必须学会,而又常用。
不带protype的静态方法,不喜欢用,感觉不符合面向对象的观念。
但有时候用用也未尝不可。各有千秋吧。
有某些特殊时候用了会有奇效。都记住吧。
带不带protype的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。