js使用原型中的问题

https://img1.mukewang.com/5befac9300015a7002840348.jpg

我有几个小问题想请教一下

  • label.prototype.schema 改写成 label.schema会有影响吗,什么情况下由于影响, 怎么决定我用那种写法?

  • getRank()中可不可以不传参来完成 获取rank?

  • getRank()这个函数 怎么写才看起来更高效 更优雅?

  • 在我编写的过程中,需要对实例化的对象进行大量的赋值、传值、取值,是我设计的有问题吗,感觉总是怪怪的,
    还是本身不太适用原型来操作?

  • 如果初始构造里同时也有getrank()

https://img3.mukewang.com/5befac9e00019d0b02310126.jpg

执行哪个(原型中的?构造函数中的?) 如何执行另外一个不执行的getrank()?

  • 有没有相关推荐的书籍?

我写过的js文件 没人review ,不知道现在自己究竟哪些地方需要提高,希望大家不吝赐教,多多支出我的不足 !


SMILET
浏览 529回答 1
1回答

料青山看我应如是

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()) // 12labelObj.schema.rank = 99;console.log(labelObj.getRank()) // 99labelObj.dd; // "dd1"labelObj.ss; // undefined
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript