首页 新闻 会员 周边

JSON对象包含方法吗

0
悬赏园豆:15 [待解决问题]

js代码如下:

function User(id,name){//构造函数
                 //属性
                this.id = id;
                this.name = name;
                this.friend = null;
                //方法
                this.introduce=function(){
                    alert("My name is "+this.name);
                }
            }

function test2(){
               var jsonStr = '{"name":"Luffy","id":17}';
               var user = JSON.parse(jsonStr);
               alert(user.name);
               user.introduce();
            }

为什么从json转化过来的对象无法访问introduce方法

TomStudio的主页 TomStudio | 初学一级 | 园豆:58
提问于:2016-06-02 10:15
< >
分享
所有回答(4)
1

先不說json object呼叫的問題

test2裡的user跟你個構造函數根本沒半點關係啊!

RosonJ | 园豆:4910 (老鸟四级) | 2016-06-02 10:23
0

json是一种数据类型,这么转肯定访问不到,前面那个function相当于js的一个类,直接对象访问就行

HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-02 13:10

如何用对象直接访问,json对象也没有方法啊

支持(0) 反对(0) TomStudio | 园豆:58 (初学一级) | 2016-06-02 13:17

@sunddenly: function User(id,name){//构造函数
                 //属性
                this.id = id;
                this.name = name;
                this.friend = null;
                //方法
                this.introduce=function(){
                    alert("My name is "+this.name);
                }
            }

    var user = new User(1,'aaa');

    alert(user.introduce());

支持(0) 反对(0) HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-02 13:18

@sunddenly: 

 function User(id,name){//构造函数
                 //属性
                this.id = id;
                this.name = name;
                this.friend = null;
                //方法
                this.introduce=function(){
                    alert("My name is "+this.name);
                }
            }

    var user = new User(17,'Luffy');

    user.introduce();

支持(0) 反对(0) HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-02 13:19

@LoveHe: 但这样根Json就没关系了,我的疑点是JSON转换js对象时,把对象方法也转过来

支持(0) 反对(0) TomStudio | 园豆:58 (初学一级) | 2016-06-02 13:22

@sunddenly: 这没听过。。。你网上没搜过?

支持(0) 反对(0) HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-02 13:49

@sunddenly: var jsonStr = '{"name":"Luffy","id":17,"introduce":function(){
                    alert("My name is "+this.name);
                }}';

      var user = eval(jsonStr);

      user.introduce();

你这样试试呢

支持(0) 反对(0) HelloWorld!!!好难啊 | 园豆:198 (初学一级) | 2016-06-02 13:51

@LoveHe: 这明显是Js对象

支持(0) 反对(0) TomStudio | 园豆:58 (初学一级) | 2016-06-02 13:53
0

已经明白了,js对象和json对象两者没关系,要有关系必须通过其他方式进行转换

TomStudio | 园豆:58 (初学一级) | 2016-06-02 13:55
0

。。。。。。。。。。。。。。。。。。。。。

全力以赴001 | 园豆:629 (小虾三级) | 2016-06-02 15:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册