从对象Literal访问原型值

时间:2017-05-20 21:50:27

标签: javascript

我一直在努力寻找这个问题的解决方案,发现有点奇怪,这个问题在此之前没有被问过:

{{1}}

如何写这个以使其访问实例属性?

2 个答案:

答案 0 :(得分:0)

这里有几件事:

  1. 关于AInst和持续时间的错字。
  2. 持续时间方法中的this.timelength指的是A.prototype.info,而不是A.prototype
  3. 话虽如此,您可以通过在最后一行调用AInst.info.duration()或仅将.type.duration分配给A.prototype来更改代码:

    var A = function(){
      this.timeLength = 5;
    }
    A.prototype = {
      type: 'video',
      duration: function(){ return this.timeLength;}
    }
    
    var AInst = new A();
    AInst.duration();
    

答案 1 :(得分:0)

'this'就是'this'所在的地方。 so ... function(){this}'this'是函数。您可以使用窗口对象。如果需要,你可以将'this'作为参数传递给另一个函数......只是不要把它称为'this'......这样会变得很难看。 'self'是'this'

副本的通用名称
window.onload = doThis;
function doThis() {
  var A = function(){
  window.timeLength = 5;
  }
  A.prototype.info = {
  type: 'video',
  duration: function(){ return window.timeLength;}
  }

  var AInst = new A();
  AInst.info.duration(); // is giving undefined

  console.log(AInst.info.duration());
}