簡體   English   中英

是否有對象的function.name之類的東西

[英]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?

兩件事情

  1. 默認情況下, Object沒有name屬性,除非您在定義對象時指定了相同的屬性,

例如

var myObj = {
  name : "myObj"
};
  1. myObj2.namemyObj2不是對象的名稱,而是對象的引用(變量)的名稱。

簡短的答案? 沒有。

另一方面,您可能知道,全局變量是窗口變量的一部分。 因此,您可以執行以下操作:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM