枯燥的js原型

原型

定义:原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先。原型也是对象。

//Person.prototype--原型
       //Person.prototype={} 是祖先
       Person.prototype.name = 'he';
       function Person(){
    
    
		//this.name = 'ji';
       }
       var person = new Person();
       var person1 = new Person();

共用属性

此时person,person1都能继承Person的属性和函数。

当Person里面有与原型里相同属性的话,取用Person里面的.

//Person.prototype--原型
       //Person.prototype={} 是祖先
       Person.prototype.lastname = 'he';
       function Person(){
    
    
		this.name ='sds';
       }
       
       var person = new Person();
       var person1 = new Person();
       person.lastname = 'sdsd';

修改对象属性时候,并没有修改它的原型。如若对象没有这个属性的话,则会添加进去而不会是undefined

原型也可以这样写。

//Person.prototype--原型
       //Person.prototype={} 是祖先
       Person.prototype={
    
    
       	height:1400,
       	lang:4900
       }
       function Person(){
    
    
       }
       var person = new Person();
       var person1 = new Person();

对象名字.constructor可以找到出生地。

proto

每个对象都有个proto,指向自己的原型。
对象名字._ _ proto_ _ (两个下划线连在一起)

易错:

Person.prototype={
    
    
            name:"a",
            sayName : function(){
    
    
                console.log(this.name);
            }
        }
       function Person(){
    
    
           this.name = "b";
       }
       var person = new Person();

结果为b。
sayName里面的this指向是,谁调用这个方法,this指向就是谁。

object.prototype.toString.call( ):可以查看括号中是object还是number等等

猜你喜欢

转载自blog.csdn.net/weixin_51664705/article/details/113784816