多种对象定义方式

Posted fushou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多种对象定义方式相关的知识,希望对你有一定的参考价值。

/**
 * 对象定义
 * @authors Your Name (you@example.org)
 * @date    2019-08-18 15:10:38
 * @version $Id$
 */

var print0 = (function() 
    var test = ;
    test.test0 = function() 
        console.log(‘test0‘)
        console.log(this)
    
    return test
)() //对象不用new

var print = 
    test: function() 
        return ‘fucntion1‘
    ,
    console: function() 
        console.log(‘test1‘)
        console.log(this)
    
 //对象,不用new

var print2 = (function() 
    var print2 = function() 
    print2.prototype = 
        test2: function() 
            console.log(‘test2‘)
            console.log(this)
        
    
    return new print2()
)() //函数对象要new

var print3 = (function() 
    var print3 = function() 
        return 
            test3: function() 
                console.log(‘test3‘)
                console.log(this)
            
        
    
    return new print3()
)() //函数对象要new

//建议使用,对外api方式
var print4 = (function() 
    function _test41() 
        console.log(‘test41‘)
    
    //_test41不对外暴露
    return 
        test4: function() 
            console.log(‘test4‘)
            console.log(this)
            _test41()
        ,
        test5: function(r, callback) 
            console.log(callback) //callback回调函数结果在外面执行 function()()
        ,
        test6: function(r, callback) 
            console.log(typeof callback)
            console.log(callback && (callback)(r)) //callback是回调函数在里面执行 function()
        
    

)() //对象不用new

var print5 = (function() 
    function test5(e, ops) 
        this.e = e;
        this.ops = ops;

    
    test5.prototype.test5 = function() 
        console.log(‘test5‘)
        console.log(this)
        console.log(this.e, this.ops)
    
    return test5
)() //函数对象在外面new print5 = new print5(1,2)

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<link href="" rel="stylesheet">
<script type="text/javascript" src="./user.js"></script>
</head>
<body>
    <h1 id="test">测试</h1>
    <script type="text/javascript">
        print0.test0()
        print.console()
        print2.test2()
        print3.test3()
        print4.test4()
        print4.test5(param,function(r)
            return callback5
        ())
        print4.test6(callback6,function(r)
            return r
        )
        
        print5 = new print5(1,2)
        print5.test5()

    </script>
</body>
</html>

 

  

以上是关于多种对象定义方式的主要内容,如果未能解决你的问题,请参考以下文章

JPA多种方式写SQL

javascript 面向对象(多种创建对象的方式)

创建对象的多种方式

js 创建对象的多种方式优缺点

js创建对象的多种方式及优缺点

js创建对象的多种方式及优缺点