gpt4 book ai didi

javascript - 如何为 JSON 对象设置原型(prototype)?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:51:27 26 4
gpt4 key购买 nike

我正在从服务器接收一些 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com