zoukankan      html  css  js  c++  java
  • 可是你不是说,”在这些书上签上我的名字“吗?

    一个叫Jack的巨星出了一本书,为了带动销量,他决定给每一个要出售的书签名。可是,他当然没有这个时间来做这种事,于是他决定雇一个叫Tom的人来帮他做这件事,他对Tom说,在这些书上签上我的名字。于是Tom就照着做了:

    var star = {
    	_name : "Jack",
    	hirePerson : function(person) {
    		person.signBook = function(book) {
    			book.sign("This book is from " + this._name);
    		}
    	}
    };
    var tom = {
    	_name : "Tom"
    };
    var book = {
    	sign : function(name) {
    		console.log(name);
    	}
    };
    star.hirePerson(tom);
    tom.signBook(book);
    

    结果却发现书上签的却是:

    This book is from Tom

    Jack愤怒了,你怎么搞的,怎么书上签的是你的名字!Tom很无辜的说,可是你不是说,”在这些书上签上我的名字“吗?

    "Oh, shit,我的名字!"

    "是我的名字啊!"

    于是Jack只好换一种说法,在这些书上签上Jack的名字。

    	hirePerson1: function(person) {
    		var jack = this;
    		person.signBook = function(book) {
    			book.sign("This book is from " + jack._name);
    		}
    	}
    

    这下终于对了:

    This book is from Jack

    但是后来狗仔队知道了Jack找人顶替签名的事,Jack被人非议,于是他只好自己签名:

       hirePerson2: function(person) {
            person.signBook = this.bind(function(book) {
                book.sign("This book is from " + this._name);
            }, this);
        },
       bind: function(fn, context) {
          return function() {
            return fn.apply(context, arguments);
          };
        }
    

      

  • 相关阅读:
    Spring Boot入门
    Spring MVC文件上传和下载
    Spring MVC异常处理
    SpringMVC
    linux(2)
    linux(1)
    白盒测试
    LoadRunner(8)
    LoadRunner(7)
    LoadRunner(6)
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2686097.html
Copyright © 2011-2022 走看看