我有以下BaseModel
课程
namespace 'Models', (exports) ->
class exports.BaseModel
toJSON: =>
if @jsonProperties? then ko.toJSON( @, @jsonProperties() ) else null
然后我Profile
的类继承了BaseModel
该类
namespace 'Models', (exports) ->
class exports.Profile extends exports.BaseModel
constructor: ( @options ) ->
@FirstName = ko.observable( @options.FirstName )
@LastName = ko.observable( @options.LastName )
@jsonProperties: ->
return [ "FirstName", "LastName" ]
这使我可以调用如下内容
profile = new Models.Profile
FirstName: 'blah'
LastName: 'blah'
profile.toJSON()
但是在基本模型@jsonProperties
中是undefined
因为它有点像类类型上的静态函数。我想要这个的原因是我可以像这样在其他类中引用它Models.Profile.jsonProperties()
我是否可以从 BaseModel 中访问类似的内容?
编辑:添加占位符修复,直到我想出更好的东西
我已经完成了以下操作以使其正常工作,但我宁愿不必在我创建的每个模型中重复这一行,似乎应该有一个通用的方法来从 BaseModel 执行此操作。
namespace 'Models', (exports) ->
class exports.Profile extends exports.BaseModel
constructor: ( @options ) ->
@jsonProperties = Models.Profile.jsonProperties