美文网首页
js原型链

js原型链

作者: 想当一个大头兵 | 来源:发表于2019-08-06 17:40 被阅读0次

1.写一个原型链继承的例子

function Animail() { this.eat = function () { console.log('动物吃东西') } }

function Dog () { this.bark = function () { console.log('wangwang') } }

Dog.prototype = new Animail()

Dog.prototype.constructor = Dog.constructor

var d = new Dog()

d.eat() // 动物吃东西

2.获取页面元素显示内容绑定事件

function elem(id) { this.elem = document.getElementById(id) }

Elem.prototype.html = function (val) {
 var elem = this.elem
 if(val) {
 elem.innerHTML = val
 return this  // 链式操作
 } else {
 return elem.innerHTML
 }
 }

Elem.prototype.on = function (type,fn){
 var elem = this.elem
 elem.addEventListener(type,fn)
 }

var div1 = new Elem('tanke1');

console.log(div1.html())

div1.html('<div>click me</div>').on('click', ()=>{console.log(111111)})

3.new 一个对象的过程

1.创建一个新对象

2.this 指向这个新对象

3.执行代码,即对 this 赋值

4.返回 this

new 的过程:

1.var f = new Foo('zhangsan',20)  将参数传进去,函数中的 this 会变成空对象

2.this.name = name;this.age = age;this.class = 'class-1' 为赋值;return this 为实际的运行机制

3.return 之后赋值给 f ,f 具备了 f.name = zhangsan、f.age = 20、f.class = 'class-1'

4.继续执行到 f1 ,则 f1.name = lisi、f1.age = 22、f1.class = 'class-1'

所有的引用类型(数组、对象、函数), _proto_ 属性值(隐式原型属性)指向它的构造函数的“prototype”属性值

for (item in obj) {
    if (obj.hasOwnProperty(item)) {
        // 通过则表明它是 f 自身的属性,未通过则表明 是 f 通过原型获得的属性    
}

}

原型链

f.toString(),当这个对象没有这个属性的时候,去它自身的隐式原型中找,它自身的隐式原型就是它构造函数(Foo)的显式原型(Foo.prototype)但显式原型(Foo.prototype)中并没有 toString ;但显式原型(Foo.prototype)也是对象,也要在它的隐式原型中找,即在其构造函数 (Object )的显式原型中去找 toString. 故要在 f._proto_(隐式原型)的._proto_(隐式原型)中找,如图所示,故输出 null。

原型链介绍

相关文章

  • 廖雪峰JS小记

    (function(){})() 原型,原型链 浅谈Js原型的理解JS 原型与原型链终极详解 对象 对象:一种无序...

  • JS的__proto__和prototype

    最近在回顾JS的原型和原型链的知识,熟悉JS的同学都知道JS的继承是靠原型链实现的,那跟原型链相关的属性__pro...

  • Javascript(三)之原型继承理解

    进阶路线 3 原型继承 3.1 优秀文章 最详尽的 JS 原型与原型链终极详解 一 最详尽的 JS 原型与原型链终...

  • 从实现角度分析js原型链

    从实现角度分析js原型链 欢迎来我的博客阅读:《从实现角度分析js原型链》 网上介绍原型链的优质文章已经有很多了,...

  • JS原型链

    1什么是JS原型链? 通过__proto__属性将对象与原型对象进行连接. 1.1 JS原型链的作用? 组成的一个...

  • 关于JS中的原型和原型链

    目录 关于js 对象和原型 原型链 基于原型链的继承 参考资料ECMAScript 6 入门JavaScript原...

  • js_继承及原型链等(四)

    js_继承及原型链等(三) 1. 继承 依赖于原型链来完成的继承 发生在对象与对象之间 原型链,如下: ==原型链...

  • 2022前端高频面试题

    JS相关 1.原型和原型链是什么 原型和原型链都是来源于对象而服务于对象的概念js中引用类型都是对象,对象就是属性...

  • JavaScript原型链

    js原型链 原型链是JS面向对象的基础非常重要 所有对象只有__proto__属性,而函数具有prototype属...

  • web前端面试之js继承与原型链(码动未来)

    web前端面试之js继承与原型链(码动未来) 3.2.1、JavaScript原型,原型链 ? 有什么特点? 每个...

网友评论

      本文标题:js原型链

      本文链接:https://www.haomeiwen.com/subject/zomwdctx.html