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"