我一直在努力寻找这个问题的解决方案,发现有点奇怪,这个问题在此之前没有被问过:
{{1}}
如何写这个以使其访问实例属性?
答案 0 :(得分:0)
这里有几件事:
this.timelength
指的是A.prototype.info
,而不是A.prototype
话虽如此,您可以通过在最后一行调用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());
}