var func1 = function() {}
console.log(func1.name); // func1
从javascript开发人员的角度来看,这个属性是否有实时使用?
答案 0 :(得分:3)
将函数作为参数传递给另一个函数时,可以将其用于调试目的,例如:
var fun1 = function(){};
function fun2(){};
var g = function(f){
console.log("Invoking " + f.name);
f();
}
if(Math.random() > 0.5){
g(fun1);
} else {
g(fun2);
}
答案 1 :(得分:1)
这个问题的答案将非常广泛,因为有数百个名为name
的属性使用示例。它们在JavaScript documentation中有详细介绍。很少有例子如下。
更改功能名称。
var newName = "xyzName";
var f = function () {};
Object.defineProperty(f, 'name', {value: newName});
console.log(f.name); // will output xyzName
为了记录类堆栈,我们可以获得构造函数名称,如下例所示。
function a() {};
var b = new a();
console.log(b.constructor.name); // will output a
获取函数名称,如果它不是匿名的。
var getRectArea = function area(width, height) {
return width * height;
}
getRectArea.name; //will output area