Re: [ js ] object 和 prototype的問題
※ 引述《btsken (郝小明)》之銘言:
: 是這樣的,我不太會描述這個問題....
: 就直接用例子說明好了XD
: 假設我在有一個物件Man
: function Man(name) {
: this.name = name;
: }
: Man.prototype.walk = function() {
: console.log("walk");
: }
: 我將物件轉成json
: var json = JSON.stringify(new Man("tom"));
: 然後再轉回來
: var man = JSON.parse(json);
: 我想問的是,從json轉回來的物件有辦法保有prototype的方法嗎
: 小弟觀念沒有很好,先謝謝各位了~
同推文所說,JSON 是一種儲存資料的格式,你的 walk 函式根本上就無法以
JSON 儲存。下面是在實例化後再另外讀取 JSON 的做法
function Man(name){
this.name = name;
}
Man.prototype = {
walk: function(){
console.log(this.name + " walk");
},
saveToJSON: function(){
return JSON.stringify(this);
},
loadFromJSON: function(json){
var o = JSON.parse(json);
for (key in o) {
this[key] = o[key];
}
}
};
var man = new Man("Tom");
man.walk(); // Tom walk
var man2 = new Man();
man2.loadFromJSON(man.saveToJSON());
man2.walk(); // Tom walk
--
(* ̄▽ ̄)/‧★*"`'*-.,_,.-*'`"*-.,_☆,.-*`
http://i.imgur.com/oAd97.png

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.246.194
※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1408296526.A.3DD.html
推
08/18 02:38, , 1F
08/18 02:38, 1F
→
08/18 12:30, , 2F
08/18 12:30, 2F
→
08/18 12:30, , 3F
08/18 12:30, 3F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章
6
32