美文网首页
原型实例化对象的constructor的指向问题

原型实例化对象的constructor的指向问题

作者: 赵xiao赛 | 来源:发表于2017-09-18 13:34 被阅读0次
<html>  
  
    <head>  
        <script type="text/javascript">  
            function Person()  
            {}  
  
            Person.prototype.username = "zhangsan";  
            Person.prototype.password = "0123";  
  
            Person.prototype.getInfo = function()  
            {  
                alert(this.username + ":" + this.password);  
            }  
              
            var person = new Person();  
            var person2 = new Person();  
  
            person.username = "lisi";  
  
            person.getInfo();  
            person2.getInfo();  
  
        /* 
           单纯使用原型方式定义对象无法在构造函数中为属性赋初值,只能 
           在对象生成后再去改变属性值。 
         */  
  
        </script>  
  
    </head>  
  
    <body>  
  
  
    </body>  
  
  
</html>  

构造器函数在js中式相当于类的概念,但是我们在通过构造器函数实例化对象的时候可能会出现constructor的指向出现问题

上面的方法实例出出来的person对象的constructor指向的是他的父构造器函数Person

var Person=function(){}
Person.prototype={
   name:
   age:
}
var person2=new Person 
person2.constructor==object  

这样实例化出来的对象的函数的指向就发生变化,由本来的Person的构造器函数指向Object,为了避免这样的问题,我们可以强制指向他的构造器函数

  constructor:Person,
  name:   ,
  age:    
}

这里给大家推荐几个经常用到的在与原型上操作的方法:

合并数组

除了数组里面的方法concat() 数组方法

Array.prototype.push.call(arguments)

判断一个数据的数据类型

Object.prototype.toString.call(x)    x是需要判断的数据类型

获取数组里面的最大项或者是最小项

Math.max.apply(null,arr)   需要改变函数调用时的对象

对于call和apply方法,传入参数的问题,call方法的参数是一个一个传递的,但是apply传入的参数是一一个数组的方式传入的,其他的没有什么区别

    B.apply(A,arguments)  //  A对象应用B对象的方法

相关文章

  • 原型实例化对象的constructor的指向问题

    构造器函数在js中式相当于类的概念,但是我们在通过构造器函数实例化对象的时候可能会出现constructor的指向...

  • 原型链

    prototype:构造函数有一个prototype属性,指向实例对象的原型对象。constructor:原型对象...

  • js 原型 2019-12-15

    原型:constructor 构造函数、实例、原型对象三者之间的关系 原型链 原型对象中的this指向 扩展内置对...

  • 构造函数,实例,原型关系详解

    1.构造函数,实例,原型三者关系如下 构造函数的prototype指向其原型对象 原型对象的constructor...

  • Js相关笔记-3

    原型对象的constructor 修改原型对象时,一般要同时修改constructor属性的指向。 // 坏的写法...

  • JavaScript中的prototype, construct

    定义 prototype是函数(构造函数)的属性,指向原型对象。 constructor是原型对象的属性,指向当前...

  • 原型和原型链

    原型 所有函数都有一个prototype属性,指向一个原型对象;原型对象有一个constructor属性,指向这个...

  • constructor vs instanceof

    constructor 实例对象上的属性,指向创建实例对象的对象,可修改 instaceof 检测这个实例是不是由...

  • 原型指向可以改变

    构造函数中的this就是实例对象原型对象中方法中的this就是实例对象 原型指向可以改变实例对象的原型proto指...

  • 对象原型中的属性及作用

    所有对象的proto(对象隐式原型)均指向自身构造函数的prototype(函数显示原型) constructor...

网友评论

      本文标题:原型实例化对象的constructor的指向问题

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