码迷,mamicode.com
首页 > 其他好文 > 详细

原型和原型链

时间:2018-06-21 01:33:54      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:element   asc   dde   构造   eve   数组   prope   原型链   方法   

构造函数

function Stu(name,age){
this.name=name;
this.age=age;
}
instanceof 查看引用类型对象是属于哪个构造函数的方法,通过__proto__ 一直往上找prototype,直到找到Object

原型规则和示例

所有的引用类型(数组/对象/函数)都可有扩展属性,都有一个隐式原型__proto__属性,所有函数都可以扩展prototype显示原型属性,属性值是个普通的对象,
所有的引用类型试图得到一个它本身的某个属性,会通过它的隐式原型__proto__去找它构造函数中的prototype
// 不希望打印出原型的属性,只打印自身属性
for(let item of f){ if(f.hasOwnProperty(item)){ console.log(item) } }

原型链

let f =new Foo();
f.alertName= function(){
// 方法具体实现
}
f.toString() //toString方法在Foo原型中找,找不到接着要去 f.__proto__.__proto__中查找

New一个对象的过程

  • 创建一个新的对象
  • this指向这个新的对象
  • 执行代码,即对this赋值
  • 返回this

原型链继承

function Elem(id){
this.elem =document.getElementById(id);
}
Elem.prototype.html =function(val){
if(val){
return this.elem.innerHTML;
}
this.elem.innerHTML= val;
return this; //将Elem对象返回
}
Elem.prototype.on =function(type,func){
this.elem.addEventListener(type,func);
return this;
}
const elem =new Elem(‘div1‘);
elem.html(‘张三‘).on(‘click‘,function(){
console.log(‘点击了文本,打印张三‘);
}).html(‘李四’)

原型和原型链

标签:element   asc   dde   构造   eve   数组   prope   原型链   方法   

原文地址:https://www.cnblogs.com/fuGuy/p/9206784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!