小编Cub*_*ass的帖子

在eval反序列化后,Javascript原型未定义

尝试反序列化JSON数据并更新每个对象的原型并继承常用函数.

但是,以下脚本抛出错误"people [0] .getFullName不是函数".分配后,反序列化对象的原型似乎未定义.

<html>
<head>
<script>
var json = '[ {"firstName": "John", "lastName": "Smith"}, {"firstName": "Nancy", "lastName": "Jones"} ]';
var people;
eval('people = ' + json);

function Person() { }

Person.prototype.getFullName = function() {
    return this.firstName + ' ' + this.lastName;
}

//assign prototype
for(var i=0; i < people.length; i++){
    people[i].prototype = new Person();
}


if(people[0].getFullName() !== 'John Smith')
    alert('Expected fullname to be John Smith but was ' + people[0].getFullName());
</script>
</head>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript json prototype eval

5
推荐指数
1
解决办法
2361
查看次数

标签 统计

eval ×1

javascript ×1

json ×1

prototype ×1