总结写在前面:
①:带有protype:表示类的扩展,必须new后才能使用。
②:不带protype:属于静态方法,直接调用即可。
html代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="show.js"></script>
</head>
<body>
<script src="main.js"></script>
</body>
</html>
protype:
show.js代码:
window.meng = window.meng || {};
(function () { function Show(name) {
this._name=name;
}
Object.defineProperty(Show.prototype,"name",{
get:function () {
return this._name;
}
});
Show.prototype.showCloth=function () {
console.log(this.name+"穿着皮大衣");
}; meng.Show=Show; })();
main.js代码:
(function () { var per=new meng.Show("meng");
per.showCloth(); })();
效果:
输出meng穿着皮大衣。
no protype:
show.js代码:
window.meng = window.meng || {};
(function () { function Show(name) {
this._name=name;
}
Show.showName=function () {
console.log("静态方法");
}; meng.Show=Show; })();
main.js代码:
(function () { // var per=new meng.Show("meng");
// per.showCloth(); meng.Show.showName();
})();
效果:
输出:静态方法。
自己的认知:带有protype的扩展方法在js里面举足轻重,必须学会,而又常用。
不带protype的静态方法,不喜欢用,感觉不符合面向对象的观念。
但有时候用用也未尝不可。各有千秋吧。
有某些特殊时候用了会有奇效。都记住吧。