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

2.9 原型链综合复习参考

时间:2018-04-25 19:00:22      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:new   存储   正则   win   关系   一个   on()   array   内存   

1.div,a,window,document 浏览器输出看一下内置的方法有哪些

  function Fn () {

    this.x = 100;

    this.y = 200;

    // 在类的函数体中写的this.xxx = xxx都是给当前类的实例增加私有的属性或者方法

  }

  // 在类的原型上写的,都是给当前类的实例或者当前类,增加的公有的属性和方法

  Fn.prototype.getX = function() {

    console.log(this.x)

  }

  Fn.prototype.getY = function () {

    console.log(this.y)

  }

  var f = new Fn;

  var f2 = new Fn;

2.所有的函数数据类型(普通函数和类)都天生自带一个属性:prototype,它存储的值是一个对象数据类型的值,浏览器默认为其开辟一个堆内存

   在浏览器给prototype默认开辟的堆内存上有一个默认的属性:constructor,指向当前类本身

 每一个对象数据类型(普通对象,数组,正则,实例,prototype)都天生自带一个属性,__proto__,指向当前实例所属类的原型

  function Fn () {

    this.x = 100;

    this.getX = function () {

      console.log(this.x)

    }

  }

  Fn.prototype.getX = function() {

    console.log(this.x)

  }

  Fn.prototype.setX = function (n) {

    this.x = n

  }

  var f1 = new Fn;

  f1.getX() // this->f1, console.log(f1.x) 100

  f1.__proto__.getX() // this->f1.__proto__,console.log(f1.__proto__.x) undefined

  Fn.prototype.setX(300) // this ->Fn.prototype, Fn.prototype.x= 300

  f1.getX() // 100

  f1.__proto__.getX() // 300

  f1.setX(); //this -> f1,f1.x = 500 把私有的修改为500

  f1.y = 300 // 给f1本身增加一个私有属性和f2没有关系

  f1.__proto__.y = 1000 // 在原型上增加一个y = 1000,f2也可以获取到这个值了

3.在内置类的原型上扩展方法

  var ary= [12,23,34]

  ary.pop() // this->ary

  ary.__proto__.pop() // this->ary.__proto__ ->Array.prototype

2.9 原型链综合复习参考

标签:new   存储   正则   win   关系   一个   on()   array   内存   

原文地址:https://www.cnblogs.com/z-dl/p/8946157.html

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