zoukankan      html  css  js  c++  java
  • javascript中的原型和继承

    javascript一直是初学者口中的难点,甚至一些有些许工作经验的人也不太明白其中的原理,而我就是那个初学者,前段时间在阮一峰老师的博客上看了一篇文章《javascript继承机制的设计思想》有点顿悟的感觉,那咱们就开始讨论一下吧。

    先从普通函数和构造函数来学习

    (1)普通函数的形式:

    function obj () {
       return 123 ;
    }
    obj();//123

    普通函数和构造函数的区别是它不用new去调用,可以用return去返回值,函数的内部不建议使用this。

    (2)构造函数的形式:

      function Obj (name,age) {
            this.name = name;
            this.age = age;
        }
        Obj.prototype.fn = function () {
            alert(this.name+"is a girl");
        }
        var obj = new Obj("Alice",25);
        obj.fn();//Alice is a girl
    

    构造函数需要用new来调用,函数内部可以用this,一般不用return,默认返回this对象,而且首字母经常用大写。通常我们说new一个对象,应该说的就是给构造函数new一个实例,然后构造函数的this就指向了新的实例对象。  

    javascript中的继承机制设计思想

    由构造函数我们可以知道,假如我们new两个实例对象,两个对象的属性是独立的,改变一个实例对象的属性对另外一个没有任何影响。所以我们就用到了prototype属性,这个属性的作用是如果两个实例对象有共享属性的话,就可以把共享属性放到prototype对象中,用阮一峰老师的话来说就是“prototype对象就好像是实例对象的原型,而实例对象则好像继承了prototype对象一样”。

     

  • 相关阅读:
    路飞学城-Python爬虫集训-第二章
    路飞学城-Python爬虫集训-第一章
    pymysql 使用
    Mysql 用户管理和权限设置
    spring data jpa
    thymeleaf学习
    Spring Boot技术栈博客笔记(1)
    SpringBoot学习(2)
    使用idea引入注解@SpringBootApplication报错Cannot resolve symbol 'SpringBootApplication'
    SpringBoot学习(1)
  • 原文地址:https://www.cnblogs.com/daikefeng/p/6251933.html
Copyright © 2011-2022 走看看