[英]is there such thing as function.name for objects
所以我想知道是否有一種方法可以使用function.name
而不是對象。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function/name
我的意思是要擁有這樣的東西:
function myFunction() {}
console.log(myFunction.name); // logs "myFunction"
// but like
var myObj = {};
console.log(myObj.name); // logs "myObj"
如果可能的話,它將如何處理這樣的事情?
var myObj = {};
var myObj2 = {};
console.log(myObj2.name); // logs "myObj" or "myObj2" or both?
兩件事情
Object
沒有name
屬性,除非您在定義對象時指定了相同的屬性, 例如
var myObj = {
name : "myObj"
};
myObj2.name
, myObj2
不是對象的名稱,而是對象的引用(變量)的名稱。 簡短的答案? 沒有。
另一方面,您可能知道,全局變量是窗口變量的一部分。 因此,您可以執行以下操作:
function findName(obj, scope){
if(scope === void 0){
scope = window
}
for (prop in scope) {
if(scope.hasOwnProperty(prop) && scope[prop] == obj){
return prop
}
}
}
注意:這是獲取變量名的極端無效的方法!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.