为了账号安全,请及时绑定邮箱和手机立即绑定

js使用原型中的问题

js使用原型中的问题

SMILET 2018-10-24 13:14:57
我有几个小问题想请教一下label.prototype.schema 改写成 label.schema会有影响吗,什么情况下由于影响, 怎么决定我用那种写法?getRank()中可不可以不传参来完成 获取rank?getRank()这个函数 怎么写才看起来更高效 更优雅?在我编写的过程中,需要对实例化的对象进行大量的赋值、传值、取值,是我设计的有问题吗,感觉总是怪怪的,还是本身不太适用原型来操作?如果初始构造里同时也有getrank()执行哪个(原型中的?构造函数中的?) 如何执行另外一个不执行的getrank()?有没有相关推荐的书籍?我写过的js文件 没人review ,不知道现在自己究竟哪些地方需要提高,希望大家不吝赐教,多多支出我的不足 !
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

function label(){ return this.init.apply(this, arguments); }


// label原型链

label.prototype = {

    // 预定义的属性

    schema: {

        "name": '哈哈',

        "age": "13",

        "id": 1 ,

        "rank":12

    },

    // 初始化方法, label方法定义了由init作为创建方法

    init: function(arg1, arg2){

        this.dd=arg1;

        this.ss=arg2;

    },

    // 定义通用方法

    getRank: function(){

        // 这里的this就是本实例

        // 返回schema.rank, 没有则返回0

        return this.schema.rank || 0;

    }

}



//实例

var labelObj=new label("dd1");

console.log(labelObj.getRank()) // 12

labelObj.schema.rank = 99;

console.log(labelObj.getRank()) // 99


labelObj.dd; // "dd1"

labelObj.ss; // undefined


查看完整回答
反对 回复 2018-11-17
  • 1 回答
  • 0 关注
  • 527 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信