在Object原型中定义属性并获取对象的类型
Define property in the Object prototype and get the object's type
我在Object
的原型上创建了一个属性,该属性是一个具有某些功能的对象:
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()
函数中,我将this._value
作为对象本身。如果是字符串,则值为:
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._value)
将返回"object"
。对于对象:
Object {b: 1}
我的问题是我如何识别如果对象最初是一个字符串,因为它是一个对象和typeof
(正确)返回我"object"
?
以上代码的演示。
PS:不好意思,这个标题太糟糕了。如果有人知道如何做得更好,自我解释就好了。
您要查找的是instanceof
操作符:
("simple string".json()._value) instanceof String === true
对于不将this
值强制转换为对象,您可以使用严格模式:
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"
相关文章:
- 从ajax请求中获取javascript对象
- 通过字符串获取JSON对象
- 如何在angular中获取json对象的名称
- 如何使用angular获取json对象的名称
- 获取一个对象´s属性的名称使用字符串
- 正在从嵌套值获取父对象
- 获取js对象键的值
- 获取原型对象的名称
- 如何从给定的代码中获取JSON对象
- 了解如何在数组中获取特定对象
- 获取整数对象属性名称的最小值和最大值
- 从Angular Scope中的Array中获取所有对象
- 在Javascript函数中获取Java对象属性
- 如何在JQUERY中从HTML文档中获取XML对象
- Backbone集合:如何从API中获取特定对象以放置在模型中
- 基于单个属性从数组中获取唯一对象
- 获取JSON对象中数组的长度
- 尝试获取每个对象的总和
- 正在尝试获取非对象php-DOM的属性
- 如何从HTML元素中获取Javascript对象