I am executing following code
function Person(name, age){
this.name = name || "John";
this.age = age || 24;
this.displayName = function(){
console.log('qq ',this.name);
}
}
Person.name = "John";
Person.displayName = function(){
console.log('ww ',this.name);
}
var person1 = new Person('John');
person1.displayName();
Person.displayName();
getting following output :
qq John
ww Person
I am not getting how am getting this.name = Person in second console
I am executing following code
function Person(name, age){
this.name = name || "John";
this.age = age || 24;
this.displayName = function(){
console.log('qq ',this.name);
}
}
Person.name = "John";
Person.displayName = function(){
console.log('ww ',this.name);
}
var person1 = new Person('John');
person1.displayName();
Person.displayName();
getting following output :
qq John
ww Person
I am not getting how am getting this.name = Person in second console
Share Improve this question asked Dec 22, 2017 at 6:10 Javed INJaved IN 3321 gold badge4 silver badges12 bronze badges 03 Answers
Reset to default 3That es from Function.name
as explained in the JS MDN
A Function object's read-only name property indicates the function's name as specified when it was created, or "anonymous" for functions created anonymously.
function doSomething() {}
doSomething.name; // "doSomething"
If you want to get the desired output, change the property name
to name1
function Person(name1, age){
this.name1 = name1 || "John";
this.age = age || 24;
this.displayName = function(){
console.log('qq ',this.name1);
}
}
Person.name1 = "John";
Person.displayName = function(){
console.log('ww ',this.name1);
}
function main() {
var person1 = new Person('John');
person1.displayName();
Person.displayName();
}
The output :
qq John
ww John
The name property returns the name of a function statement.
When you are calling function as Person.displayName(); & try to use "this.name". it will return name of the function
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745267263a4619532.html
评论列表(0条)