作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在从服务器接收一些 JSON 对象,我想将其“类型转换”或“祝福”到一个具有已定义方法的对象。有什么方法可以为普通 JSON 对象设置原型(prototype)吗?
function MyClass(someValue) {
this.myProperty = someValue;
}
MyClass.prototype.someMethod = function() { return "Here's " + this.myProperty + "!"};
var json = {myProperty : 'someValue'};
// ??? json.prototype = MyClass doesn't work, of course.
var result = json.someMethod();
我该怎么做?
最佳答案
好吧,我可以建议试试这些:
通过向所有 Javascript 对象添加所需的函数(不好的做法)
Object.prototype.lol = function() { alert(this.a); };
var x = {a : 'b'};
x.lol();
通过使用函数“扩展”JSON:
var json = {a : 'b', b : 123};
function extend(obj) {
obj.func1 = function(param) {
alert(this[param]);
}
}
extend(json);
json.func1('b');
通过将对象“制作”成一个函数:
var json = {a : 'b', b : 123};
function extendToFunc(obj) {
var theLibrary = function(obj) {
/**
* The same as above.
*/
this.func1 = function(param) {
alert(obj[param]);
}
};
return new theLibrary(obj);
}
var jsonFunc = extendToFunc(json);
jsonFunc.func1('b');
或者您可以为此使用 JS 框架。或者您能想到的任何其他方法 :) 我的示例很简单,它们可以扩展到您需要的任何复杂内容。
关于javascript - 如何为 JSON 对象设置原型(prototype)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4097007/
我是一名优秀的程序员,十分优秀!