首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript原型覆盖

Javascript原型覆盖
EN

Stack Overflow用户
提问于 2017-04-26 13:10:53
回答 1查看 123关注 0票数 0

我有这样的代码,它允许我返回一个关于连接到特定帖子的帖子的字符串。我尝试使用括号和点表示法来访问列表部分(list=list+this["connectionsTo"[i]].postNum+"\n";)下面的属性,但没有工作。但是当我用双点表示法时,它起作用了,为什么?我相信那两个人是一样的。

代码语言:javascript
复制
function Fencepost(x, y, postNum) {
  this.x = x;
  this.y = y;
  this.postNum = postNum;
  this.connectionsTo = [];
}

Fencepost.prototype = {
  sendRopeTo: function(connectedPost) {
    this.connectionsTo.push(connectedPost);
  },
  removeRope: function(removeTo) {
    var temp = [];
    for (var i = 0; i < this.connectionsTo.length; i++) {
      if (this.connectionsTo[i].postNum != removeTo) {
        temp.push(this.connectionsTo[i]);
      }
    }
    this.connectionsTo = temp;
  },
  movePost: function(x, y) {
    this.x = x;
    this.y = y;
  },
  valueOf: function() {
  return Math.sqrt(this.x * this.x +
                   this.y * this.y);
  }
};

Fencepost.prototype.toString=function(){
var list="";
for(var i=0;i<this.connectionsTo.length;i++){
list=list+this["connectionsTo"[i]].postNum+"\n";
}
  return "Fence post #"+this.postNum+":\nConnected to posts:\n"+list+"Distance from ranch: "+this.valueOf()+" yards";
};

var post10=new Fencepost(3,4,10);
var post11=new Fencepost(5,7,11);
var post12=new Fencepost(6,7,12);
var post13=new Fencepost(8,9,13);
post10.sendRopeTo(post11);
post10.sendRopeTo(post12);
post10.sendRopeTo(post13);
console.log(post10.toString());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-26 13:15:51

因为您在this.connectionsTo数组上迭代,所以您正在寻找

代码语言:javascript
复制
this["connectionsTo"][i]

the equivalent

代码语言:javascript
复制
this.connectionsTo[i]

而不是

代码语言:javascript
复制
this["connectionsTo"[i]]

对字符串进行索引,然后将该字符作为this的属性。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43635256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档