function Person(){ };
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
console.log(Person.name); //Person
console.log(Person.age); //undefined
这段代码,为什么Person.name会打印出Person,而不是像Person.age一样打印出undefined?
function Person(){ };
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
console.log(Person.name); //Person
console.log(Person.age); //undefined
这段代码,为什么Person.name会打印出Person,而不是像Person.age一样打印出undefined?
Person.name代表的是函数的名字,这是函数自带的属性,并不是原型上name属性。
如下:
function getPage () {
}
console.log(getPage.name) //"getPage"
function Person(){ };
Person.prototype.name = "Nicholas";
Person.prototype.age = 29;
console.log(Person.name); //Person
console.log(Person.age); //undefined
var girlFriend = new Person();
console.log(girlFriend.name); //Nicholas
console.log(girlFriend.age); //29
类的实例才能继承原型上的属性和方法。
Person.name
和 Person.age
属于类的静态属性。
关于 Function.name
的说明 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
13 回答12.8k 阅读
7 回答2k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答928 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
name 是函数自带的方法 返回的是当前函数名
Person