javascript - json和绑定(bind)方法

标签 javascript json webservice-client overloading

我有一个类似 Person 的 javascript 类

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

首先,我想重载构造函数:

function Person( _person ){
    this.Name = _person.Name;
    this.Salary = _person.Salary;
    this.Id = _person.Id;
}

但无论我做什么,它都会转到第一个函数...!?

其次,我为这个 javascript 类提供了一些函数,例如:

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

我现在做的是:

  1. 从网络服务发送字符串,如 new Person('cem','1000','15000')
  2. 在客户端评估字符串,如:

    数据类型:json, 成功:功能(消息){ globalObj = eval(msg.d); },

  3. 并使用 javascript 对象及其功能。 globalObj.f_IncreaseSalary(0.2);

但我认为我应该在 json 中返回字符串,例如: "Person": {"name":"Cem", "id":1000, "salary":15000 }

如何将 Person 类的 javascript 方法绑定(bind)到 json 对象...?

最佳答案

在 ECMA-/Javascript 中不可能像这样“重载”方法/函数。

一个好的解决方法是检查参数对象,比如

function Person(){
   if(typeof arguments[0] === 'object'){
      // addional checks 
      this.Name   = arguments[0].Name;
      this.Salary = arguments[0].Salary;
      // etc.
   }
   else if(arguments.length === 2){
      this.Name   = arguments[0];
      this.Salary = arguments[1];
      // etc.
   }
}

我不认为我理解你的第二个问题,“如何将 javascript 方法绑定(bind)到 json 对象”。

您需要“解析”json无论如何,将字符串转换为 javascript 对象。这可以通过使用 window.JSON.parse(<jsonstring>) 来完成在“现代”浏览器中。较旧的浏览器(如 IE7)需要 json2.js来自 www.json.org提供相同的功能。

关于javascript - json和绑定(bind)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3931578/

相关文章:

python - 如何将 json.loads 应用于 pandas df 中的每一行

javascript - ASP.Net webservices 中的 JSON 数组类型解析

java - 创建 Web 服务客户端时出现 NoSuchMethodError

c# - 更简单的通用 ClientBase 工厂

javascript - 在不显示 HTML WordPress 的表单上输入值

javascript - TinyMCE 和 fancybox 交互错误

新 String ("a") 对象的 JavaScript(严格)相等

javascript - d3 等值线 : changing data without reloading map

json - 如何使用 scala 中的 json4s 库测试我为解析器创建的案例类是否正确?

php - Golang 常量结构键