牛客网_返回对象

news/2024/5/19 0:43:22 标签: 对象, 构造函数, 原型

这里写图片描述
我的答案:

function createModule(str1, str2) {
    /*var obj={
        greeting:str1,
        name:str2,
        sayIt :function(){
            return this.greeting+", "+this.name;
        }
    };
    return obj;*/

    //工厂模式
   /* var obj=new Object();
    obj={
       greeting:str1,
        name:str2,
        sayIt :function(){
            return this.greeting+", "+this.name;
        } 
    }
    return obj;*/

    //构造函数模式
    /*function CreateObj(){
        this.greeting=str1;
        this.name=str2;
        this.sayIt=function(){
               return  this.greeting+', '+this.name;
        }
    }

    return new CreateObj();*/

    //原型模式
    /*function CreateObj(){

    }
    CreateObj.prototype.greeting=str1;
    CreateObjt.prototype.name=str2;
    CreateObj.prototype.sayIt=function(){
        return this.greeting+', '+this.name;
    }
    return new CreateObj();*/

    //更简单的原型方法,字面量创建原型对象
    /*function CreateObj(){

    }
     CreateObj.prototype={
            greeting:str1,
            name:str2,
            sayIt:function(){
                return this.greeting+', '+this.name;
            }
        }
     Object.defineProperty(CreateObj.prototype,"constructor",{
         enumerable:false,
         value:CreateObj
     })
    return new CreateObj();*/

    //组合使用构造函数模式和原型模式
    /*function CreateObj(){
        this.greeting=str1;
        this.name=str2;
    }
    CreateObj.prototype.sayIt=function(){
        return this.greeting+', '+this.name;
    }
    return new CreateObj();*/

    //动态原型模式,,对上述方法进行封装
     /*function CreateObj(){
        this.greeting=str1;
        this.name=str2;

         if(typeof this.sayIt !=="function"){
              CreateObj.prototype.sayIt=function(){
                    return this.greeting+', '+this.name;
                }
         }
    }

    return new CreateObj();*/

    //寄生构造函数模式
    /*function CreateObj(){
        var o=new Object();
        o.greeting=str1;
        o.name=str2;
        o.sayIt=function(){
            return this.greeting+', '+this.name;
        }
        return o;
    }
    return new CreateObj();*/

    //稳妥构造函数模式
    function CreateObj(){
        var o=new Object();
        o.greeting=str1;
        o.name=str2;
        o.sayIt=function(){
            return o.greeting+', '+o.name;
        }
        return o;
    }
    return CreateObj();
}

更多讨论:
https://www.nowcoder.com/questionTerminal/48e53feaabe94506a61300edadb5496d


http://www.niftyadmin.cn/n/764340.html

相关文章

netlink怎么读_ovs源码阅读--netlink使用

netlink socket是一种用于用户态进程和内核态进程之间的通信机制。它通过为内核模块提供一组特殊的API,并为用户程序提供了一组标准的socket接口的方式,实现了全双工的通讯连接。特点:双向传输,异步通信用户空间中使用标准socket …

牛客网_检查重复字符串

解答: 1、正则表达式的方向引用 function containsRepeatingLetter(str) {return /([a-zA-Z])\1/.test(str); } \1涉及正则表达式中反向引用的概念,参考:正则表达式中的反向引用 2、字符串方法 function containsRepeatingLetter(str) {…

ethtool如何让接口闪灯_linux网卡模式设置mii-tool和ethtool

DEV了mii-tool 更改网络接口协商的方法:# mii-tool --helpusage: mii-tool [-VvRrwl] [-A media,... | -F media] [interface...]-v, --verbose more verbose output 注:显示网络接口的信息;-R, --reset reset MII to poweron state 注&#…

python中pop函数删除0为什么显示的是1_python,一个类的函数中,列表明明为空,但为什么pop的时候不抛异常??...

#encodingGBKimportosclassDirectoryWalker:def__init__(self,directory):#只被执行一次self.stack[directory]self.files[]self.index0def__getitem__(self,index):while1:try:fi...#encodingGBKimport osclass DirectoryWalker:def __init__(self,directory):#只被执行一次se…

javascript中的动态集合——NodeList、HTMLCollection、NamedNodeMap

一、NodeList、HTMLCollection、NamedNodeMap的相同点与不同点 (1)相同点 1. 三者都是类数组对象 2. 都有item()方法 (2)不同点 1. NodeList是节点(12种)的集合、HTMLCollection是元素节点的集合、Nam…

oracle改成归档模式_修改oracle为归档模式

修改oracle为归档模式1,查看是否为归档模式SQL> archive log list;Database log mode No Archive ModeAutomatic archival DisabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 31Curren…

javascript中的深浅拷贝(非构造函数的继承)

首先,我们应该明确深浅拷贝是针对Array、Object这样的复杂类型的。 一 常见的深浅拷贝的方法 (1)数组和对象的浅拷贝 如果是数组,我们可以利用数组的一些方法比如:slice、concat 返回一个新数组的特性来实现拷贝。 …

centos7 r语言安装_centos7安装R语言(epel-release源)

本文介绍在centos7下通过epel-release源安装R语言,此方法简单粗暴,类似于ubuntu下的sudo apt-get install r-base,值得拥有,具体步骤如下:1、安装epel-release,执行命令sudo yum install -y epel-release注…