3個使用this的典型應用

1.
function Thing() { }
 Thing.prototype.foo = "bar";
 Thing.prototype.logFoo = function () {
      console.log(this.foo);
 }
 Thing.prototype.setFoo = function (newFoo) {
      this.foo = newFoo;
  }
  var thing1 = new Thing(); 
  var thing2 = new Thing();
 thing1.logFoo(); //logs "bar"
 thing2.logFoo(); //logs "bar"
 thing1.setFoo("foo");
 thing1.logFoo(); //logs "foo";
 thing2.logFoo(); //logs "bar";
 thing2.foo = "foobar";
 thing1.logFoo(); //logs "foo";
 thing2.logFoo(); //logs "foobar";

2.
function Thing1() { }
  Thing1.prototype.foo = "bar";
  function Thing2() {
     this.foo = "foo";
 }
  Thing2.prototype = new Thing1();
  function Thing3() {}
  Thing3.prototype = new Thing2();
  var thing = new Thing3();
  console.log(thing.foo); //logs "foo"

3.
function Thing() {}
  Thing.prototype.foo = "bar";
  Thing.prototype.logFoo = function () { 
      function doIt() {
          onsole.log(this.foo);
       }
      doIt.apply(this);
  }
 function doItIndirectly(method) {
method();
 }
var thing = new Thing();
doItIndirectly(thing.logFoo.bind(thing)); //logs bar
複製代碼
相關文章
相關標籤/搜索