Javascript 如何将函数绑定到JSON对象?

Javascript 如何将函数绑定到JSON对象?,javascript,json,hasownproperty,Javascript,Json,Hasownproperty,1) 我可以访问每.f\u IncreaseSalary(0.2)的,但是如果我从JSON字符串创建这个对象,我如何访问f\u IncreaseSalary函数呢? function Person(_name, _id, _salary){ this.Name = _name; this.Id = _id; this.Salary = _salary; } Person.prototype.f_IncreaseSalary = function( _percentage

1) 我可以访问每.f\u IncreaseSalary(0.2)的
,但是如果我从JSON字符串创建这个对象,我如何访问f\u IncreaseSalary函数呢?

function Person(_name, _id, _salary){
    this.Name = _name;
    this.Id = _id;
    this.Salary = _salary;
}

Person.prototype.f_IncreaseSalary = function( _percentage ){
    this.Salary *= _percentage;
}

var per = new Person("cem",10,15000);
2) 如何创建具有Person类函数的sPer对象?

function Person(_name, _id, _salary){
    this.Name = _name;
    this.Id = _id;
    this.Salary = _salary;
}

Person.prototype.f_IncreaseSalary = function( _percentage ){
    this.Salary *= _percentage;
}

var per = new Person("cem",10,15000);

3) 我如何理解
sPer
具有
f\u IncreaseSalary
功能?
您的
Person
原型和具有属性
Person
的JSON对象是完全不相关的。您需要使用
newperson(…)
和JSON对象中的数据显式创建一个新对象:

function Person(_name, _id, _salary){
    this.Name = _name;
    this.Id = _id;
    this.Salary = _salary;
}

Person.prototype.f_IncreaseSalary = function( _percentage ){
    this.Salary *= _percentage;
}

var per = new Person("cem",10,15000);
var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
sPer.f_IncreaseSalary(0.2); // it won't! 

您的
Person
原型和具有属性
Person
的JSON对象完全不相关。您需要使用
newperson(…)
和JSON对象中的数据显式创建一个新对象:

var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
sPer.f_IncreaseSalary(0.2); // it won't! 

您正在创建的对象文本不是Person对象。它是一个属性为“Person”的未命名对象,其属性与Person对象相同

var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
var per = new Person(sPer.Person.Name, sPer.Person.Id, sPer.Person.Salary);
per.f_IncreaseSalary(0.2);

您正在创建的对象文本不是Person对象。它是一个属性为“Person”的未命名对象,其属性与Person对象相同

var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
var per = new Person(sPer.Person.Name, sPer.Person.Id, sPer.Person.Salary);
per.f_IncreaseSalary(0.2);

回答你的问题:

JSON是Javascript对象表示法的首字母缩写,基本上,一旦从JSON字符串创建对象,就有了一个具有属性的对象

以你为例

var personData = sPer.Person;
var p = new Person( personData.Name, personData.Id, personData.Salary);
p.f_IncreaseSalary(0.2)
您正在创建的对象文字与您声明的
Person
对象不同。您的
sPer
基本上允许您这样做

//改变Javascript中的值

var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
它将不具有以下功能:

sPer.Salary = 100000;
sPer.Name = "John";
sPer.Id = 200;
因为您不能在JSON中创建函数


希望这有帮助。

要回答您的问题:

JSON是Javascript对象表示法的首字母缩写,基本上,一旦从JSON字符串创建对象,就有了一个具有属性的对象

以你为例

var personData = sPer.Person;
var p = new Person( personData.Name, personData.Id, personData.Salary);
p.f_IncreaseSalary(0.2)
您正在创建的对象文字与您声明的
Person
对象不同。您的
sPer
基本上允许您这样做

//改变Javascript中的值

var sPer = {"Person" : {"Name":"Cem", "Id":10, "Salary":15000} };
它将不具有以下功能:

sPer.Salary = 100000;
sPer.Name = "John";
sPer.Id = 200;
因为您不能在JSON中创建函数

希望这有帮助