我已经创建了一个ashx页面,它将为我提供一个充满基本用户信息的
XML文档.我不确定哪个是创建和填充我的自定义
JavaScript对象的最佳方法.我见过他们以两种方式创建:
function User() { this.Id; this.FirstName; this.LastName; this.Title; }
和
var User2 = { Id: null,FirstName: null,LastName: null,Title: null }
我可以通过以下方式填充这些内容:
//first object User.Id = 1 //second object User2.FirstName = 'John'
创建对象的一种方法比另一种更好吗?
编辑:一年半之后,我看到这个问题得到了流行的徽章,所以我只是想提一下,今天我正在使用Crockford的module pattern.
解决方法
您无法在没有实例化的情况下访问第一个对象的属性,即使用new关键字:
var myUser = new User() ; document.write(myUser.id) ;
第二个对象是一个对象文字,可以在没有实例化的情况下访问,因为它在解析时已经被实例化.
如果您希望使用原型继承来创建基于旧对象的新对象,则会产生差异.如果你有一个相当紧凑的代码库,写一个对象文字可能更容易理解,更合适的模式.但是,如果要通过使用另一个对象扩充现有对象而不必重写增强的对象来创建新对象,则原型设计会派上用场:
ipUser.prototype = User ; ipUser.ip = "128.0.0.1" ;
在你的情况下,这种差异可能看起来并不显着,但你必须想象如果你为每个微小的原始对象添加创建另一个对象文字,你将获得多少冗余代码.
如果您有其他问题,请查看Mozilla开发人员中心的JavaScript对象页面,它的概述非常好:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference:Global_Objects:Object.
心连心