原型形式

prototype

我们建立的每一个函数都有一个prototype(原型)属性,这个属性时一个指针,指向一个对象(函数的原型对象),这个对象的用处是可以由特定范例的一切实例同享属性和要领。在默许情况下一切原型对象都邑自动获得一个constructor(组织函数)属性,这个属性包括一个指向prototype属性地点函数的指针。
function Person(){
};
Person.prototype.name = 'jeck';
Person.prototype.sayName = function(){
    console.log(this.name)
};
var p1 = new Person('jeck', 13);
p1.sayName();            //jeck
var p2 = new Person('andy', 22);
p2.sayName();            //jeck

Person.prototype指向原型对象
Person.prototype.constructor又返回指向Person

hasOwnProperty()

检测一个属性是不是存在于实例中,照样存在于原型中。
function Person(){};
Person.prototype.name = 'jeck';
var person1 = new Person();
person1.hasOwnProperty('name');        //false
person1.name = 'andy';
person1.hasOwnProperty('name');        //true

原型与in操作符

经由过程对象可以接见给定属性时返回true,不管着实实例中照样原型中。

Object.keys()

经由过程此要领可以获得对象上一切可罗列的实例属性。
function Person(){};
Person.prototype.name = 'jeck';
Person.prototype.age= '12';
Person.prototype.sex= 'M';
console.log(Object.keys(Person.prototype));    //[name age sex]
var person1 = new Person();
person1.name = 'andy';
console.log(Object.keys(person1));    //[name]
    原文作者:93回忆录
    原文地址: https://segmentfault.com/a/1190000005053277
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞