javascript->this ,in ,prototype

一、this
1、作为函数调用
var x = 1;
  function test(){
    this.x = 0; //this是全局对象
  }
  test();
  alert(x); //0
2、作为对象的方法调用
3、作为构造函数调用
var x = 2;
  function test(){
    this.x = 1; //this是局部对象
  }
  var o = new test();
  alert(x); //2
4、apply调用修改指向对象
var x = 0;
  function test(){
    alert(this.x);//this指向全局对象
  }
  var o={};
  o.x = 1;
  o.m = test;
  o.m.apply(); //0
//o.m.apply(o); 输出1
二、in
in运算符可以用来判断,某个实例是否含有某个属性,不管是不是本地属性。
还可以用来遍历某个对象的所有属性.
三、prototype
1、isPrototypeOf()
这个方法用来判断,某个proptotype对象和某个实例之间的关系。
alert(Cat.prototype.isPrototypeOf(cat1)); //true
2、 hasOwnProperty()
每个实例对象都有一个hasOwnProperty()方法,用来判断某一个属性到底是本地属性,还是继承自prototype对象的属性。
alert(cat1.hasOwnProperty("name")); // true

你可能感兴趣的:(javascript->this ,in ,prototype)