奔三路 - 你30岁前的学习路!

奔三路学习网

当前位置: 主页 > 挨踢职场 > 前端 >

实例理解js使用prototype的原因

时间:2017-10-25 18:06来源:未知 作者:admin
先上一波代码: script type=text/javascript function user() { this.u_list = [] } user.prototype.add = function (n) { this.u_list.push(n) }; var u = new user() var u1 = new user() u.add(mh1) u.add(mh2) console.log(u) console.log(u1) /sc
先上一波代码:


<script type="text/javascript">
        function user() {
            this.u_list = []

        }
        user.prototype.add = function (n) {
            this.u_list.push(n)
        };
        var u = new user()
        var u1 = new user()
        u.add('mh1')
        u.add('mh2')
        console.log(u)
        console.log(u1)

    </script>
 

user类的add方法如果放在user本身的话会导致每次对象实例化时代码被复制。
而写在原型上添加相当于user父类中添加成员,子类实例化时会继承原型链,以至于减少了内存占用,这样也有利于代码的复用。

以下是一个人类,示例继承的代码如下:

<script type="text/javascript">
        // 人类
        function People() {
            this.type = ''
            this.pp_list = []

        }
        People.prototype.add = function (n) {
            this.pp_list.push(n)
        };
        People.prototype.say = function (n) {
            return this.type
        };
        
        // 中国人
        function Chinese() {
            this.type = '中国人'
            People.call(this)
        }
        Chinese.prototype = Object.create(People.prototype)
        var c = new Chinese()
    
        c.add('李白')
        c.add('杜甫')
        console.log(c)
    </script>

控制台的原型输出是继承自上一级的prototype

(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
史密斯 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2017-11-24 11:11 最后登录:2018-07-15 11:07
栏目列表
推荐内容

关注奔三路小程序,方便你我他