Javascript 在对象原型中定义属性并获取对象';s型

Javascript 在对象原型中定义属性并获取对象';s型,javascript,Javascript,我在对象的原型上创建了一个属性,它是一个具有某些功能的对象: Object.defineProperty(Object.prototype, "json", { value: function() { return { _value: this, parse: function() { } }; }, enumerable: false

我在
对象
的原型上创建了一个属性,它是一个具有某些功能的对象:

Object.defineProperty(Object.prototype, "json", 
{
    value: function()
    {
        return {
            _value: this,
            parse: function()
            {
            }
        };
    },
    enumerable: false
});
我希望能够在任何对象上调用它,例如:

"simple string".json().parse()
// or
var a = {b:1};
a.json().parse()
parse()
函数中,我将
这个值作为对象本身。对于字符串,值将为:

String {0: "s", 1: "i", 2: "m", 3: "p", 4: "l", 5: "e", 6: " ", 7: "s", 8: "t", 9: "r", 10: "i", 11: "n", 12: "g", length: 13}
如果我使用
typeof(this.\u值)
将返回
“object”
。对于对象:

Object {b: 1}
我的问题是,既然对象是一个对象,并且
typeof
(正确地)返回我
“object”
,我如何识别该对象最初是否是一个字符串


PS:很抱歉这个糟糕的标题。如果有人知道如何做得更好,自我解释会很好。

你要找的是接线员:

("simple string".json()._value) instanceof String  ===  true

对于不获取投射到对象的
值,可以使用:


你在找什么?@是的。成功了!你想回答吗?@VisioN很好!非常感谢。
Object.defineProperty(Object.prototype, "json", {
    value: function() {
        "use strict";
        return {
            _value: this,
            parse: function() {
            }
        };
    }
});
typeof "simple string".json()._value // "string"
typeof new String("simple string").json()._value // "object"