首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

js基础的有关问题请问

2014-01-08 
js基础的问题请教?window.onload function() {function Base() {this.elements []}Base.prototype.ge

js基础的问题请教?


window.onload = function() {

  function Base() {
    this.elements = [];
  }

  Base.prototype.getId = function(id) {
    this.elements.push(document.getElementById('a'));
    alert(this);  //这行的this
  };
  Base.getId('a');
};


错误提示是:TypeError: Base.getId is not a function
为什么啊?
请问this指的是Base对象还是Base的原型对象Base.prototype呢?
谢谢!
[解决办法]

window.onload = function() {
 
  function Base() {
    this.elements = [];
  }
 
  Base.prototype.getId = function(id) {
    this.elements.push(document.getElementById('a'));
    alert(this);  //这行的this
  };

  var base = new Base();
  base.getId('a');
};


要new!
[解决办法]
base的对象
[解决办法]
Base本身是个对象
可以用for(var i in Base){
     alert(Base[i]+" "+i);
}
或者JSON.stringify(Base)
查看Base这个对象的属性
new Base();产生新的对象 获得Base.prototype原型链上的属性
[解决办法]
楼主不够细心啊~~对象根本没有创建啊。
至于this,是永远指向当前运行的环境的。
function test() {
    console.log(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m();
test();

运行一下就大概理解了。

热点排行