多种对象定义方式

/**
 * 对象定义
 * @authors Your Name ([email protected])
 * @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>

  

原文地址:https://www.cnblogs.com/fushou/p/11374381.html

时间: 2024-10-10 04:58:27

多种对象定义方式的相关文章

03JavaScript程序设计修炼之道 2019-06-06_20-10-17_2019-06-06_21-12-50 对象定义方式:{}、构造;字符串及常用方法;

29object.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compat

类对象定义方式总结

// ConsoleApplication34.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using namespace std; class A { public: int a; A(); }; A::A() { cout << "hello world!" << endl; } class CExample { private: int a;

JavaScript对象定义方式剖析

JavaScript语句 with语句: (对象操作语句) 功能:为一段程序建立默认对象. 格式: with (<对象>){ <语句组> } 1 <body> 2 <!-- 不用每个write前面都写document --> 3 <script type="text/javascript"> 4 with(document){ 5 write("<ol>"); 6 write("<

sql server查询可编程对象定义的方式对比以及整合

本文目录列表: 1.sql server查看可编程对象定义的方式对比 2.整合实现所有可编程对象定义的查看功能的存储dbo.usp_helptext2 3.dbo.helptext2的选择性测试 4.总结语 5.参考清单列表 1.sql server查看可编程对象定义的方式对比   上一篇博文重构sql server的sys.helptext存储中写了sys.helptext的限制和输出格式每行自带char(13)和char(10)这两个字符.为了将可编程对象定义查询方式研究透彻,以下表格列出了

转: .NET MVC3 几种返回 JSON 对象的方式和注意事项

.NET MVC3 几种返回 JSON 对象的方式和注意事项 转自:http://blog.csdn.net/xxj_jing/article/details/7382589 引言在用 .NET MVC3 给我们做 WEB 项目带来很大灵活性同时,对刚上手的同学来说有些细微的设置导致的问题让我们相当的“纠结”! 这里要讨论的就是:使用JQuery的 Ajax 请求后“返回”的JSON 数据问题. 相信大多数同学都会遇到过,就是在后台已经拼接好了一(拼接方法比较多,我的博客也有提到过!)串标准的J

生产者/消费者问题的多种Java实现方式--转

实质上,很多后台服务程序并发控制的基本原理都可以归纳为生产者/消费者模式,而这是恰恰是在本科操作系统课堂上老师反复讲解,而我们却视而不见不以为然的.在博文<一种面向作业流(工作流)的轻量级可复用的异步流水开发框架的设计与实现>中将介绍一种生产者/消费者模式的具体应用. 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品.解决生产者/消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步

Ansible系列(六):各种变量定义方式和变量引用

本文目录:1.1 ansible facts1.2 变量引用json数据的方式 1.2.1 引用json字典数据的方式 1.2.2 引用json数组数据的方式 1.2.3 引用facts数据1.3 设置本地facts1.4 输出和引用变量1.5 注册和定义变量的各种方式 1.5.1 register注册变量 1.5.2 set_fact定义变量 1.5.3 vars定义变量 1.5.4 vars_files定义变量 1.5.5 roles中的变量 1.5.6 命令行传递变量 1.5.7 inve

Java对象表示方式1:序列化、反序列化和transient关键字的作用

http://www.cnblogs.com/xrq730/p/4821958.html 平时我们在Java内存中的对象,是无 法进行IO操作或者网络通信的,因为在进行IO操作或者网络通信的时候,人家根本不知道内存中的对象是个什么东西,因此必须将对象以某种方式表示出来,即 存储对象中的状态.一个Java对象的表示有各种各样的方式,Java本身也提供给了用户一种表示对象的方式,那就是序列化.换句话说,序列化只是表示对 象的一种方式而已.OK,有了序列化,那么必然有反序列化,我们先看一下序列化.反序

对象继承方式

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>对象继承</title> </head> <body> <script> /* function Person(name, age){ this.name = name; this.age = age; this.say