让我们假设我有一个传递给函数的对象属性。在这种情况下,“名称”中填充了'myObject.name'
(其值为'Tom'
) - 因此基本上'Tom'
将作为“名称”传递给函数
function(name) {
do something //non-essential for my question
}
是否可以通过获取信息'Tom'
来获取'Tom'
属性的对象?基本上我希望得到myObject
。
谢谢:)
答案 0 :(得分:0)
不,那是不可能的。
该函数知道的一切是它的一个参数指向字符串" Tom",而不是指向内存中其他地方的那个字符串。
答案 1 :(得分:0)
您可以在数组中存储对象,过滤数组以将对象的属性名称与使用for..of
循环传递给函数的参数匹配,Object.entries()
返回属性数组,对象的值
const data = Array();
const setObjectPropertyName = _name => {
data.push({[_name]:_name});
return data
}
const getObjectByPropertyName = prop => {
let res = `${prop} property not found in data`;
for (let obj of data) {
for (let [key] of Object.entries(obj)) {
if(key === prop) return obj;
}
}
return res;
}
let s = setObjectPropertyName("Tom");
let g = getObjectByPropertyName("Tom");
let not = getObjectByPropertyName("Tome");
console.log(s,"\n", g, "\n", not);
答案 2 :(得分:0)
免责声明:你绝对不应该这样做。我只是发布这个,因为它实际上是可能的(有一些警告),只是真的不可取。
假设它在浏览器中运行并且它全部在全局范围内运行(如在脚本标记中),您可以在技术上迭代{{1对象,检查窗口中的任何对象的name属性,并确定它们的name属性是否与传递给你的函数的名称相匹配。
window