`
xwj_1998
  • 浏览: 8095 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

javascript函数的几个相关概念

阅读更多
javascript函数的几个相关概念
说明:
文中提到的Function类对象指new Function(..);
普通对象指new T();
---------------------------------------------------------------
概念1. 一个函数被定义, 实际上就是创建了一个Function类的对象.
---------------------------------------------------------------
方法1(标准)
function showText(text)
{
alert(test);
}
showText("hi, tomsui!~");

方法2
show = function showText(text)
{
alert(text);
}
show("hi, tomsui!~");

方法3(匿名方法)
show = function(text)
{
alert(text);
}
show("hi, tomsui!~");

方法4(显式定义对象)
show = new Function("text","alert(text);");//这个方法更能解释该概念
show("hi, tomsui!~");

注意: 作为一个对象,肯定会有默认的toString(),可以直接打印这个对象,其实就是函数体本身:
alert(show)        // function anonymous(text) { alert(text); }
alert((showText)) // function showText(text) { alert(test); }


---------------------------------------------------------------
概念2. Function类的对象和Object(根)有prototype属性
---------------------------------------------------------------
这个prototype属性是一个对象:
function showText(text)
{
alert(test);
}
alert(showText.prototype);             // [object, Object]
alert(typeof(showText.prototype));     // object
alert(showText.prototype.constructor); // function showText(text) { alert(test); }


构造器的prototype属性作为一个object, 本身存在一个不可for-in的属性"constructor",指向该构造器本身(打印出来的话是函数体定义)

注意: "Function类的对象",不是每一个普通对象(通过new关键字生成)都有prototype属性的!


---------------------------------------------------------------
概念3. Function类的对象有一个constructor属性
---------------------------------------------------------------
function showText(text)
{
alert(test);
}

alert(showText.constructor);          // function Function() { [native code] }
alert(typeof(showText.constructor)); // function

关于Function类的对象(showText函数)的constructor属性:
1) 是"一段不可显示的本地代码" (而不像是showText的prototype属性一样是一个对象)
2) 它的类型是"function"
注意:普通对象也有constructor属性,和Function类的对象相似,区别只是1)中是“一段可以显示的本地代码”。

---------------------------------------------------------------
总结.   prototype属性,constructor属性, construct属性 概述
---------------------------------------------------------------
//==================待定 开始===========================
如果把对象( 根据一个对象是否为Function对象 )分为两类:
a. 一个函数对象 (Function类的对象)
b. 一个普通对象 (通过new关键字结合构造函数创造的"非Function类"对象)

那么:
1. 函数对象存在prototype 属性, 而普通对象不存在;
2. 函数对象存在constructor属性, 普通对象不存在; constructor属性的type是"function",toString后是一段“本地代码”(native),
3. 普通对象存在construct 属性, 函数对象不存在; construct 属性是type是"function" ,toString后是“函数代码本身”,
//===================待定 结束==========================


转自:http://hi.baidu.com/flvu/blog/item/3a343e677a154c29ab184cbf.html

分享到:
评论

相关推荐

    javascript函数式编程

    函数式编程指南通常会涵盖以下几个重要知识点: 一等公民的函数:在函数式编程中,函数是一等公民,这意味着函数可以作为参数传递给其他函数、作为结果返回,也可以被赋值给变量。这一特性让代码更加灵活,支持高级...

    JavaScript函数式编程.pdf

    JavaScript函数式编程的知识点非常丰富,涉及很多方面的内容,下面将详细介绍几个核心知识点。 1. 函数式编程基础 函数式编程(Functional Programming)是一种编程范式,它将计算视为数学函数的评估,并且避免...

    JAVASCRIPT函数之高阶函数.pdf

    下面将详细解释与高阶函数相关的几个关键概念。 首先,文档提到了函数作为参数传递的情况。例如,funcTest函数接受一个函数f作为参数,并对其进行检查。这是高阶函数的一个典型用法,它能够通过参数传递其他函数以...

    JAVASCRIPT 函数手册.rar

    以下是几个重要的JavaScript函数相关知识点: 1. **定义函数**:你可以使用`function`关键字来定义一个函数,例如`function add(a, b) { return a + b; }`,这个例子定义了一个名为`add`的函数,它接收两个参数`a`...

    用函数式编程技术编写优美的 JavaScript

    为了更好地理解函数式编程在JavaScript中的应用,我们来看几个具体的示例: ##### 扩展数组排序 假设我们需要对一个数组进行排序,但不是简单的升序或降序,而是需要按照某种特定的规则进行排序。使用函数式编程...

    javascript自定义函数参数传递为字符串格式.docx

    通过上述几种方法,我们可以有效地将字符串作为参数传递给自定义的JavaScript函数。需要注意的是,在不同的场景下,选择合适的传递方式非常重要。例如,在DOM操作中使用`this`可以简化代码;而在复杂的字符串处理中...

    JavaScript的函数劫持

    JavaScript的函数劫持是一种高级编程技巧,主要用于调试、性能分析或者在不修改原始代码的情况下扩展或改变既有功能...但是,理解了上述函数劫持的概念和实现方式,你应该能更好地理解和应用相关的JavaScript编程技巧。

    JAVASCRIPT函数之高阶函数[文].pdf

    接下来,我们将深入探讨高阶函数的几个关键概念和实际应用。 首先,参数为函数的高阶函数,如示例中的`funcTest`函数,它接受一个函数作为参数并在内部执行该函数。这在处理回调函数时非常常见,例如在事件处理或...

    深度探讨javascript函数的原型链和闭包

    `new`操作符实际上执行了几个步骤:创建一个新对象,将新对象的`[[Prototype]]`链接到构造函数的`prototype`,然后在新对象上执行构造函数,并返回新对象。此外,我们还可以通过`call`或`apply`方法模拟`new`的行为...

    理解JavaScript中函数的使用

    下面通过几个具体的示例来进一步解释不同的函数定义方式: 1. **声明式函数**: ```javascript function myFunction(a, b) { return a + b; } ``` 这是一个简单的加法函数,可以直接通过`myFunction(1, 2)`调...

    JavaScript中函数对象调用模式总结

    JavaScript中的函数对象调用模式是编程中至关重要的概念,它涉及到函数作为一等公民、作用域、闭包、原型链等多个核心知识点。这篇博客通过深入分析JavaScript中的函数调用模式,帮助开发者更好地理解和掌握这些概念...

    javascript嵌套函数和在函数内调用外部函数的区别分析.docx

    - 实现一个简单的计算器应用,其中包含几个嵌套函数用于处理不同的数学运算。 - 编写一段代码,在函数内部调用外部函数,并尝试访问内部函数的局部变量,观察结果。 - 阅读更多关于JavaScript闭包、作用域链的文章和...

    JavaScript 匿名函数和闭包介绍

    在讨论JavaScript编程语言时,匿名函数和闭包是两个重要的概念,它们在函数式编程和模块化代码设计中扮演着核心角色。匿名函数是没有具体名称的函数,它们可以是独立的,也可以是表达式的一部分,通常用于定义临时...

    关于javascript函数的几个话题

    ### 关于JavaScript函数的关键知识点 #### 一、函数对象与函数指针 在JavaScript中,函数不仅是一种...以上就是关于JavaScript函数的一些核心概念和关键知识点,了解这些有助于更深入地理解和应用JavaScript语言。

    Ramda一个JavaScript程序员的实用函数库

    在Ramda中,主要包含以下几个方面的知识点: 1. **函数优先**:Ramda的设计将函数放在首位,鼓励使用高阶函数进行数据处理。例如,`map`、`filter`和`reduce`等函数,它们可以用于遍历数组并进行变换。 2. **柯里...

    JavaScript制作的几个简单网页

    在这个"JavaScript制作的几个简单网页"项目中,我们可以深入学习JavaScript的基础知识以及如何在实际应用中使用它。 首先,JavaScript的基本语法是学习的重点。包括变量声明(var、let、const)、数据类型(如字符...

    JavaScript基础和DOM API函数

    #### JavaScript函数 函数是JavaScript的核心组成部分,封装了一段代码,只有在特定事件触发或被显式调用时才执行。通过将代码组织成函数,可以实现代码的重用和模块化,提高开发效率。例如,可以创建一个函数,在...

    深入研究JavaScript的匿名函数.doc

    匿名函数与闭包密切相关,闭包是指有权访问另一个函数作用域中的变量的函数,即使在其父函数已经执行完毕之后。在JavaScript中,任何函数都可以形成闭包,包括匿名函数。例如: ```javascript function outer() { ...

    JavaScript回调函数面试题.docx

    回调函数在实际开发中的应用非常广泛,下面列举几个典型的场景: - **事件监听**:为DOM元素绑定事件监听器时,通常会使用回调函数来处理事件触发后的逻辑。 - **定时器**:`setTimeout`和`setInterval`这两个函数...

    javascript继承之工具函数二

    在JavaScript中,继承是面向对象编程的一个核心概念,它允许我们创建基于现有对象的新对象,同时还能继承其属性和方法。本篇将深入探讨一种实现继承的工具函数方法,主要聚焦于`source.js`文件中可能包含的内容。...

Global site tag (gtag.js) - Google Analytics