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);
          };
        }
    

      

  • 相关阅读:
    MySQL之事务
    Java岗 面试考点精讲(基础篇02期)
    Java岗 面试考点精讲(基础篇01期)
    Tomcat热部署
    如何连接局域网的数据库
    Mybatis逆向工程中的 mybatis-generator:generate 代码生成器的使用
    如何把转入成功的XXX.sql导入到自己的数据库里
    JSP知识总结
    Servlet
    Spring学习
  • 原文地址:https://www.cnblogs.com/zhengwenwei/p/2686097.html
Copyright © 2011-2022 走看看