国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript 寫類方式之六

2019-11-21 01:17:33
字體:
來源:轉載
供稿:網友
6、Prototype.js的寫類方式
復制代碼 代碼如下:

//prototype.js中的代碼
var Class = {
create: function() {
return function() {
this.initialize.apply(this, arguments);
}
}
}
//簡化后的
function Clazz() {
return function(){
this.initialize.apply(this,arguments);
}
}

如下步驟寫一個類,
復制代碼 代碼如下:

//類名Person
var Person = Class.create();

//通過原型重寫來定義Person
Person.prototype = {
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}

//創建對象
var p = new Person("jack");
console.log(p.constructor == Person);//false

initialize完成對象的初始化(相當于構造函數),方法依次往下寫即可。



有個問題,通過這句p.constructor == Person為false可以看到,這正是Prototype.js一個小小的缺陷。原因是重寫了Person的原型。為了使constructor能指向正確的構造器,只需在原型重寫時維護好constructor屬性即可。
復制代碼 代碼如下:

Person.prototype = {
constructor : Person,//注意這里
initialize : function(name) {
this.name = name;
},
getName : function() {
return this.name;
},
setName : function(name) {
this.name = name;
}
}

好了,這時候p.constructor == Person就是true了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴马| 景宁| 巴彦淖尔市| 铜鼓县| 汨罗市| 赣榆县| 滨海县| 潞西市| 泰来县| 义马市| 施甸县| 得荣县| 永善县| 政和县| 方山县| 玛纳斯县| 化隆| 信丰县| 大同县| 泾源县| 茂名市| 额尔古纳市| 聂拉木县| 舞钢市| 拉萨市| 沁水县| 库伦旗| 泗洪县| 阿拉善右旗| 巩义市| 石阡县| 峨眉山市| 孟连| 新化县| 罗田县| 丰台区| 涟水县| 娄烦县| 孝义市| 行唐县| 喀喇沁旗|