美文网首页
构造函数与面向对象

构造函数与面向对象

作者: 多肉灯泡 | 来源:发表于2016-06-04 15:35 被阅读0次

    面向过程是对元素添加函数方法。

    而面向对象则是通过创造一个类,这个类具有一系列的属性,然后将需要定义的元素定义为这个类的一员。

    构造函数是面向对象的代表;例如:

    function Person(name,age){

            this.name = name;

            this.age = age

            this.sayName = function(){

           }

    }

    构建函数的第一个字母默认约定为大写,�别不是必须如此,只是为了区分其他函数;毕竟它也是函数的一种。

    当需要调用时   使用如下代码  var person1 = new Person("lzz","17")

    构建函数的另一个特性就是用new开头。

    和工厂模式对比不同之处是  

    ①并没有在函数内部通过显式来创建函数②将属性和方法直接赋给了this对象。③不需要return

    构造函数有一个prototype(原型)属性。和元素的实力对应  可以通过下标访问;例如

    person1.prototype.gender = "man";

    (person1.instanceOf  Person)判断person1是否是Person的实例

    Person.prototype.isPropertyOf(person1)Person是否是person1的原型

    实例Person下有属性prototype 指向Person.prototype  属性下有一个constructor(构造函数)即为Person本身.   一般而言无法直接查看prototype 但是Chrome Safari 以及Firefox支持一个属性 : person1.__proto__来查看自身原型 prototype

    实例调用函数时,首先从自身实例中获取,如没有,则从person1.prototype中获取

    再次从 所有对象的原型中获取  Object.prototype.sayName = function(){}

    均可自行设置。

    有一些方法用来判断一个函数式来自哪个部分的定义。

    person1.hasOwnprototype("name")  判断是否是实例自身属性


    相关文章

      网友评论

          本文标题:构造函数与面向对象

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