Javascript 如何将函数绑定到JSON对象?
1) 我可以访问每.f\u IncreaseSalary(0.2)的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
,但是如果我从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中创建函数
希望这有帮助