• 关于prototype


    对于js的原型部分是学了忘,忘了学,不断的重复。所以将自己的理解结合几个简单的例子来说明原型的简单的用法,项目中用到的时候直接就可以拿来用。(面试的时候还是要去看别的大神洋洋洒洒的文字,我就不献丑了。)

    函数的 prototype 属性是在函数作为构造器使用的时候,作为其构造对象的原型。
    而只用通过new创建的函数,才有prototype属性。

    prototype可以添加属性和方法。

    简单来讲:

    function Person(name){
          this.name=name;
    };
    var person1=new Person('Byron');
    Person.prototype.printName=function(){
          alert(this.name);
    };
    console.log(person1);
    //因为person1是通过new来创建的,所以具有prototype属性,当Person又在后面添加一个函数的时候,person1同样可以访问。也可以说person1继承了Person的原型(prototype)

    但是如果我们不去new,而是直接赋值:

    function Person(name){
          this.name=name;
    };
    var person1=Person('Byron');
    Person.prototype.printName=function(){
          alert(this.name);
    };
    console.log(person1);
    //因为person1是直接赋值的,没有prototype属性,所以就无法继承Person的属性,打印结果就是undefined

    同样的,我们给其添加其他的属性也是同样的结果。

    每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。

    大概就是这么个意思。

    var Client = function(){};
    Client.prototype.subscribe = function(name) {
       this.name = name;
      return this.name; }
    var test = new Client('測試'); test.subscribe('測試');
  • 相关阅读:
    python----面对对象三大特征2
    python---面对对象的三大特征
    python---面对对象的组合
    python----特殊闭包
    python----面向对象初识
    Nginx配置upstream实现负载均衡
    Nginx的配置与部署研究,Upstream负载均衡模块
    百度地图传经纬度位置显示
    ip转城市接口,ip转省份接口,ip转城市PHP方法
    PHP把采集抓取网页的html中的的 去掉或者分割成数组
  • 原文地址:https://www.cnblogs.com/sixrookie/p/10212794.html
Copyright © 2020-2023  润新知