自定义构造函数的疑问◔ ‸◔?

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?

阅读 1.9k
4 个回答

name 是函数自带的方法 返回的是当前函数名 Person

function a () { return 1 }
a.name //"a"

因为他是javascript的保留字
你即使不写prototype他的name属性也是函数名
你可以试一下

新手上路,请多包涵

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
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题