Javascript 为什么在调用函数时可以在原型内部控制台属性

Javascript 为什么在调用函数时可以在原型内部控制台属性,javascript,function,inheritance,prototype,Javascript,Function,Inheritance,Prototype,大家好,我是javascript的初学者,我写了一个简单的代码来学习javascript原型继承 var Person=函数(名称){ this.name=名称; }; Person.prototype.isPerson=true; var person=新人(“史密斯”); //DOT(person,'name')应返回史密斯 //DOT(person,'isPerson')应为真; var点=功能(obj、pro){ if(对象hasOwnProperty(pro)){ console.l

大家好,我是javascript的初学者,我写了一个简单的代码来学习javascript原型继承

var Person=函数(名称){
this.name=名称;
};
Person.prototype.isPerson=true;
var person=新人(“史密斯”);
//DOT(person,'name')应返回史密斯
//DOT(person,'isPerson')应为真;
var点=功能(obj、pro){
if(对象hasOwnProperty(pro)){
console.log(obj[pro]);
}否则{
//返回点(obj.\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
}
};
console.log(person['isPerson']);
点(人名);

点(人称“isPerson”)原型继承搜索“原型链”以查找属性。这就是为什么
person['isPerson']
会给你这个值。它查看
person
,没有找到它,所以它查看
person.prototype
,找到了它。这也解释了为什么
hasOwnProperty()
给出
false
isPerson
不直接在对象上;这是在
Person.prototype
。哇,非常感谢