function MyClass(){
}
//向MyClass的原型中添加了一个name属性
MyClass.prototype.name="我是原型中的名字"
var mc=new MyClass()
console.log(mc.name)
mc.age=19
//使用in检查对象中是否含有某个属性时,如果对象中没有但是原型中有,也会返回true
// console.log("name" in mc)//true
//可以使用对象的hasOwnProperty()来检查对象自身中是否含有该属性
//使用该方法只有当对象自身中含有属性时,才会返回true
// console.log(mc.hasOwnProperty("age"))//true
// console.log(mc.hasOwnProperty("hasOwnProperty"))//false
//原型对象也是对象,所以它也有原型
//当我们使用一个对象的属性或者方法时,会先在自身中寻找
/*
自身中如果有,则直接使用
如果没有则去原型吧对象中寻找,如果原型对象中有,则直接使用
如果没有则去原型的原型中寻找,直到找到object对象的原型
object对象的原型没有原型,如果在object中依然没有找到,则返回undefined
*/
console.log(mc.__proto__.hasOwnProperty("hasOwnProperty"))//false
console.log(mc.__proto__.__proto__.hasOwnProperty("hasOwnProperty"))//true
js原型(2)
最新推荐文章于 2024-10-02 05:39:15 发布