1.对象和数组只有原型链,函数具有原型
let arr = [];
let obj = {};
let fun = function() {
console.log(1);
}
console.dir(arr) //[[Prototype]]
console.dir(obj) //[[Prototype]]
console.dir(fun) //prototype
2.从实例对象中查找变量和方法
// 实例对象
function Person(name) {
this.name = name;
}
Person.prototype.name = '小明';
Person.prototype.fun = function() {
console.log(this.name);
}
let fn = new Person('小红');
fn.fun()
//查找变量和方法会从当前实例属性中去查找,如果找到了就返回没找到话会顺着原型链一层一层的往上查找直到找到null顶端。
3.查找不到的情况下
//查找自己身上和原型中的值变量找不到返回undefined,函数的话报错
// console.log(fn.test);//undefined
// console.log(fn.testFun());//is not a function
4.查找自己身上的属性方法hasOwnProperty(该方法来源于Object中)
for (let k in fn) {
if (fn.hasOwnProperty(k)) {
console.log(k);
}
}
版权声明:本文为weixin_56704277原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。