美文网首页
javascript设计模式读书笔记一构造函数模式

javascript设计模式读书笔记一构造函数模式

作者: 若邪Y | 来源:发表于2016-07-02 23:08 被阅读23次

    代码来自汤姆大叔的博客(深入理解JavaScript系列(26):设计模式之构造函数模式

    1.强制使用new

    function Car(model, year, miles) {
        if (! (this instanceof Car)) {
            return new Car(model, year, miles);
        }
        this.model = model;
        this.year = year;
        this.miles = miles;
        this.output = function() {
            return this.model + "走了" + this.miles + "公里";
        }
    }
    
    var tom = new Car("大叔", 2009, 20000);
    var dudu = Car("Dudu", 2010, 5000);
    
    console.log(typeof tom); // "object"
    console.log(tom.output()); // "大叔走了20000公里"
    console.log(typeof dudu); // "object"
    console.log(dudu.output()); // "Dudu走了5000公里"
    

    2.原始包装函数

    // 原始string
    var greet = "Hello there";
    // 使用split()方法分割
    greet.split(' ')[0]; // "Hello"
    // 给原始类型添加新属性不会报错
    greet.smile = true;
    // 单没法获取这个值
    console.log(typeof greet.smile); // "undefined"
    // 原始string
    var greet = new String("Hello there");
    // 使用split()方法分割
    greet.split(' ')[0]; // "Hello"
    // 给包装函数类型添加新属性不会报错
    greet.smile = true;
    // 可以正常访问新属性
    console.log(typeof greet.smile); // "boolean"
    
    

    相关文章

      网友评论

          本文标题:javascript设计模式读书笔记一构造函数模式

          本文链接:https://www.haomeiwen.com/subject/rhgqjttx.html