开头啰嗦几句:程序之中,万事万物皆对象,这就是面向对象编程的核心思想,比如我们的js中的function,其实也是一个对象,是对象就可以有属性,在jq的源码中经常看到类似这样的方法:

jQuery.Event = function( src, props ) {if ( !(this instanceof jQuery.Event) ) {return new jQuery.Event( src, props );}if ( src && src.type ) {this.originalEvent = src;this.type = src.type;} else {this.type = src;}
...
};

明明是个函数,但是通过内部的赋值(this.),让Event()这个方法变成了一个普通的object对象,var e = new jQuery.Event( src, props );e已经是一个对象了,有着自己的属性

这里进来这后,先判断是否是jQuery.Event对象,不是的话,就new一个,为啥,为了this指向jQuery.Event,我们知道在js中new一个obj的话,this指向的就是这个obj

转载于:https://www.cnblogs.com/aishangyizhihu/p/4274636.html

对象之function相关推荐

  1. JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  2. javascript中encodeURL对象、Boolean对象、Function对象、globalThis对象、Infinity对象、isFinite对象、isNaN对象、JSON对象

    encodeURI()对象: 用于对特殊字符进行编码,decodeURI()对象:将特殊字符进行解码,常用于URL地址编码中 <script>var url = 'https://mozi ...

  3. 认识js函数对象(Function Object)

      可以用function关键字定义一个函数,对于每个函数可以为其指定一个函数名,通过函数名来进行调用.这些都是代码给用户的印象,而在JavaScript解释执行的时候,实际上每个函数都是被维护为一个 ...

  4. C++ Primer 5th笔记(chap 14 重载运算和类型转换)可调用对象与function

    1. 5种形式 可调用对象有5种形式,类型各不同: 形式 解释 函数 返回值类型和实参类型 函数指针 返回值类型和实参类型 lambda表达式 类类型 bind创建的对象 todo 重载了函数调用运算 ...

  5. C++中的函数对象(Function Object)

    一个函数对象,即一个重载了括号操作符"()"的对象.当用该对象调用此操作符时,其表现形式如同普通函数调用一般,因此取名叫函数对象.举个最简单的例子: [cpp] view plai ...

  6. 可调用对象、std::function、std::bind

    可调用对象.std::function.std::bind 仿函数functors function adapter bind(C++11) 函数适配器:bind2nd 仿函数适配器(mem_fun/ ...

  7. JavaScript创建对象的两种方法和遍历对象的属性

    创建新对象有两种不同的方法: 定义并创建对象的实例 使用函数来定义对象,然后创建新的对象实例 1.定义并创建对象的实例 var person=new Object(); person.firstnam ...

  8. json vue 对象转数组_vue 基础入门(一)修改

    vue基础入门(一) 1. 什么是vue Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标 ...

  9. JavaScript创建对象–如何在JS中定义对象

    Objects are the main unit of encapsulation in Object-Oriented Programming. In this article, I will d ...

最新文章

  1. antd option宽度自适应_Web移动端实现自适应缩放界面的方法汇总
  2. 安卓怎么显示res文件夹中的html_安卓手机如何打开.mhtml文件?
  3. 三台机器搭建MySQL一主二从
  4. Linux学习:shell命令(查找和索引)
  5. linux系统下的“静态库和动态库”专题之一:库的概念和规则
  6. 非线性回归(Non-linear Regression)
  7. linux 重定向 不换行,Ada:重定向到stdout时省略换行符(测试Put)
  8. SQL SERVER “扩展属性的应用
  9. js判断手机端和pc端
  10. 2018.11.27 元器件选型(2)- 连接器
  11. 软件需求分析报告模板
  12. esp32+超声波传感器测距
  13. Ubuntu 16.04下开启Mysql 3306端口远程访问
  14. Elasticsearch快速初始化数据
  15. 虚幻4地形怎么增加层_虚幻周报20200114 | 新春快乐!
  16. 原理分析:安卓手机桌面长按分享,安卓发送软件apk,qq发送软件apk 原理
  17. 第三次实验报告MapReduce
  18. java字符串序列化_java对象序列化为字符串
  19. every()数组方法
  20. 多尺度特征表示在深度学习中的重要意义

热门文章

  1. 干货 | 携程数据库发布系统演进之路
  2. 真强啊!建议每一位Java程序员都读读Dubbo心跳设计的源码...
  3. Spring Boot 发邮件和附件,超实用!
  4. 从业20年的程序员,“盘”出来的5种编程经验
  5. 我的梦想是十年内成为架构师,该怎么办?
  6. Cookie或将被替换!Chrome工程师提议新型HTTP状态管理协议
  7. 中台是个什么鬼 | 白话中台战略
  8. Python ImportError: No module named 'requests'解决方法
  9. windows 下更新 npm 和 node
  10. 数据结构-挖坑填数+分治法解决快速排序问题(java+c)