zoukankan      html  css  js  c++  java
  • [Javascript] 关于prototype的一些说明

    var Point = function(x,y){
    this.x = x;
    this.y = y;
    }
    Point.name
    = '我是name';
    Point.prototype.sum
    = function(){
    return this.x + this.y;
    }
    Point.prototype.odd
    = function(){
    alert(
    this.sum());
    }
    var a = new Point(1,2);
    a.odd();
    var b = new Point(3,4);
    b.odd();

    Point.prototype
    ={ // 这个过程将会覆盖之前的方法(sum,odd)
    plus :function(){
    return this.x - this.y;
    },
    odd2:
    function(){
    alert(
    this.plus());
    }
    }
    b.odd();
    //这里不会有异常
    var c = new Point(5,3);
    c.odd2();
    //这里不会有异常
    alert(c.name);//异常 undefined 可以得出结论 Point.name != Point.prototype.name
    //Point.prototype.name 是实例化后所用的. 而Point.name 相当于自身的静态变量而已
    c.odd();//这里会出异常

    1. prototype 它添加的属性相当实例化的函数(属性) 一样.而如果是Point.sum 那么在new Point()是调不出来sum的.

    千人.NET交流群:18362376,因为有你,代码变得更简单,加群请输入cnblogs
  • 相关阅读:
    nodejs ---day01
    面向对象
    面向对象
    面向对象
    webpack
    webpack
    webpack
    模块化 (ESM) --- day02
    模块化 --- day01
    轮播图(淡入淡出切换)
  • 原文地址:https://www.cnblogs.com/kingkoo/p/2050720.html
Copyright © 2011-2022 走看看