zoukankan      html  css  js  c++  java
  • 230 构造函数原型prototype

    构造函数通过原型分配的函数是所有【实例】对象所共享的

    JavaScript 规定,每一个构造函数都有一个prototype 属性,指向另一个对象。注意,这个prototype就是一个对象,这个对象的所有属性和方法,都会被构造函数所拥有。

    我们可以把那些不变的方法,直接定义在 prototype 对象上,这样所有对象的实例就可以共享这些方法。

    function Star(uname, age) {
        this.uname = uname;
        this.age = age;
    }
    Star.prototype.sing = function() {
    	console.log('我会唱歌');
    }
    var ldh = new Star('刘德华', 18);
    var zxy = new Star('张学友', 19);
    ldh.sing();//我会唱歌
    zxy.sing();//我会唱歌
    

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            // 1. 构造函数的问题. 
            function Star(uname, age) {
                this.uname = uname;
                this.age = age;
                // this.sing = function() {
                //     console.log('我会唱歌');
    
                // }
            }
    
            // 2. 一般情况下,我们的公共属性定义到构造函数里面, 公共的方法我们放到原型对象身上
            Star.prototype.sing = function() {
                console.log('我会唱歌');
            }
            var ldh = new Star('刘德华', 18);
            var zxy = new Star('张学友', 19);
    
            console.log(ldh.sing === zxy.sing);  // (1)true; (2)如果构造函数内 和 构造函数prototype上同时写了一个函数,则执行构造函数内的函数,输出false
            // console.dir(Star);
            ldh.sing();  // 我会唱歌
            zxy.sing();  // 我会唱歌
        </script>
    </body>
    
    </html>
    

  • 相关阅读:
    Hadoop2.8.2 运行wordcount
    RHEL7.2 安装Hadoop-2.8.2
    RHEL7.2 SSH无密码登录非root用户
    python day 1 homework 2
    python day 1 homework 1
    python三种格式化输出
    windwos 10 安装flask
    ubunit 16 安装pip
    Axure 8 Tab制作
    JavaScript平台Platypi悄然登场
  • 原文地址:https://www.cnblogs.com/jianjie/p/12219467.html
Copyright © 2011-2022 走看看