匿名函数、对象

匿名函数

//函数的小括号:指向一个空间
var a=10;                                                     // 小括号就相当于指向a+b这个空间,空间里面的值先做相加
var b=20;                                                    // 然后通过小括号来取出这个值再把它拿来与20相加
var c=(a+b)+20 ;
console.log(c);
// (function fn(){})                                        //指向一个函数
                                                                    //匿名函数: 没有名字的函数就叫匿名函数。
// function (){};
                                                                    //匿名函数的使用:
                                   //1、将函数作为参数传入时:通常使用函数就是 函数名() 的方式来调用它,但是这里没有给它命名它是如何执的呢?
function fm(n1){                                          //因为函数fn在执行的时候它是需要传入一个函数作为参数,不管传入的函数叫做什么名字他都会给它
n1(666);                                                    //改一个名字叫做 n1 所以没有名字的函数就获得了一个形参名叫做 n1 这样他就执行起来了。
};
fm(function (n){console.log(n)});               //这个函数的使用记得加分号 不然容易被认为是一个函数。!!!!
                                          //2、利用小括号的指向:就是把一个匿名函数放在小括号内通过小括号来指向它,
                                                                 //相当于不知道函数的名字,但是就指着这个函数说:就你这个函数执行一下!
(function (){console.log(777)})();

对象

//对象 就是一个空间内存放具体的不同的数据,可以是变量,函数,数字,布尔值,字符串,
                                                              // 这些数据都是成对出现的,叫做键值对key:value,它们都是一一对应的。
                                                              // key可以为字母,数字当它为数字是如果不加引号可能会导致点语法不能用。
                                                              // 对象的创建就会产生一个对应的空间,与函数一样,对象空间内部可以访问外部的值,二外部不能直接访问里面是的值。
var xiao={name:"xiao",eage:13,height:170};
                                                             //如何使用对象里的 属性,也就是如何使用对象里的值。
                               //1、对象名加点在加属性的方式:
console.log(xiao.name);
console.log(xiao.eage);
console.log(xiao.height);
                            //2、对象名加中括号加引号加属性的方式:
console.log(xiao["name"]);
console.log(xiao["eage"]);
console.log(xiao["height"]);
                           //3、对象属性值的修改:
xiao.name="hong";
console.log(xiao.name);
                                                                 //在使用对象里面的属性时会出现两种情况:
                                                                  //1、访问对象里面属性的值如果没有时它会显示undefined而不是报错。
console.log(xiao.ni);
console.log(xiao.中);
                                                                    //2、访问对象里面的属性没有时,它会自己重新声明一个属性在它内部。可以利用这一点来给对象添加属性。
xiao.sex="女";
xiao.like=["唱歌","跳舞","滑冰","跑步"];
console.log(xiao);
                                            //创建对象的方法:
                                                       //1、直接声明一个对象
var ming={name:"xiaoming",eage:20};
console.log(ming);
                                                       //2、利用关键词创建 new Object() 这里只是声明了一个对象里面没有属性,还需要重新给它添加属性。
                                                                        // 每当有关键字 new 出现时就会有一个新的空间开辟,类似于var关键字、function关键字,不过var是声明变量,function是函数
                                                                       // 而new表示空间。
var wang=new Object ();
wang.name="xiaowang";
wang.eage=30;
console.log(wang);
                                                      //3、利用函数创建: 有人把它叫做工厂模式。因为他可以创建多个对象。
function fn(name,eage,sex){
var p=new Object();
p.name=name;
p.eage=eage;
p.sex=sex;
return p;
};
var zhang=fn("xiaozhang",21,"男");
var zhao=fn("xiaozhao",43,"男");
var li=fn("xiaoli",19,"女");
console.log(zhang);
console.log(zhao);
console.log(li);
                                                     //4、利用“this.”加属性的方式创建:
                                                                       //this.可以理解为让这个代码执行起来的对象的作用域。
                                                                      //前面讲到过如果取一个对象里面的属性,但是没有这个属性那么他就会在这个对象的作用域中来声明一个属性
                                                                       //而this.也是指向一个作用域,就有了第四种方法:
                                                                                         //首先声明一个变量,接着变量里面new一下(开辟一个新的空间)在调用函数同时传参,里面的代码就开始执行。
                                                                                          //这里的this.name就表示在执行这个代码的对象(fn(。。。))的作用域中新建一个属性name,
                                                                                            //而因为fn()前面有个new,所以就在new这个空间内建立一个属性name,
                                                                                             //然后再把new这个空间里的值附给一个变量,那么这个变量就变成了一个对象了。
function fn(height,name,eage){
this.name=name;
this.eage=eage;
this.height=height;
};
var lan=new fn(165,"xiaolan",18);
var deng=new fn(175,"xiaodeng",16);
console.log(lan);
console.log(deng);

时间: 2024-10-25 12:38:28

匿名函数、对象的相关文章

STL算法设计理念 - 函数对象和函数对象当參数和返回值

函数对象: 重载函数调用操作符的类.其对象常称为函数对象(function object),即它们是行为类似函数的对象. 一个类对象,表现出一个函数的特征,就是通过"对象名+(參数列表)"的方式使用一个类对象,假设没有上下文,全然能够把它看作一个函数对待. 这是通过重载类的operator()来实现的. "在标准库中.函数对象被广泛地使用以获得弹性".标准库中的非常多算法都能够使用函数对象或者函数来作为自定的回调行为: demo #include <iostr

谈谈Javascript的匿名函数

JQuery 里面有这么一种代码: (function(){ // code here })(); 当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来,神奇吧! 要说匿名函数,我们首先要由函数本身说起.函数的定义如下:函数是将唯一的输出值赋予给每一输入的“法则”.偏关县信访局 当然,这只是数学上的定义.但是,在计算机编程语言中,函数的定义也八九不离十.因为我们都知道,计算机中的函数,也类似数学定义中的描述,它是将输入的若干数据,经过代码设定的逻辑操作处理后,返回唯一的输

【repost】对JAVASCRIPT匿名函数的理解(透彻版)

Query片段: view plaincopy to clipboardprint? (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿 名函数又没看到运行(当然是运行了--),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为在我之 后也不乏来者,呵呵~).当一个匿名函数被括起来,然后再在后面

C++ 理解函数对象与lambda表达式

参考<21天学通C++>第21与第22章节,对函数对象进行介绍,同时通过lambda表达式这一匿名函数对象的简洁方式加深对函数对象的理解.本篇博文的主要内容是: (1) 函数对象的概念: (2) 将函数对象用作谓词: (3) 如何使用函数对象实现一元.二元谓词: (4) 如何编写lambda表达式: (5) 如何将lambda表达式用作谓词: (6) 如何编写可存储和可操作状态的lambda表达式. 一. 函数对象 1. 函数对象的概念和种类 函数对象是C++实体,从概念上讲,函数对象是用作函

深入理解javascript 匿名函数和闭包

代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿 名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为在我之 后也不乏来者,呵呵~).当一个匿名函数被括起来,然后再在后面加

JS匿名函数声明,调用;JS闭包详解(转载)

js匿名函数的代码如下:(function(){ // 这里忽略jQuery 所有实现 })(); 半年前初次接触jQuery 的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿名函数又没看到运行(当然是运行了…… ),就能有jQuery 这么个函数库了?于是,我抱着疑问来到CSDN .结果相信现在很多人都很清楚了(因为在我之 后也不乏来者,呵呵~ ).当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神奇哦

jquery的匿名函数研究

jQuery片段: ? 1 2 3 ( function (){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿 名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为在我之 后也不乏来者,呵呵~).当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来!真神

[从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)

jQuery片段: [javascript] view plaincopyprint? (function(){ //这里忽略jQuery所有实现 })(); (function(){//这里忽略jQuery所有实现})(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为

[从jQuery看JavaScript]-匿名函数与闭包

jQuery片段: [javascript] view plaincopy (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的第一眼,我就迷糊了.为什么只有一个匿名函数又没看到运行(当然是运行了……),就能有jQuery这么个函数库了?于是,我抱着疑问来到CSDN.结果相信现在很多人都很清楚了(因为在我之后也不乏来者,呵呵~).当一个匿名函数被括起来,然后再在后面加一个括号,这

STL算法设计理念 - 函数对象和函数对象当参数和返回值

函数对象: 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象.一个类对象,表现出一个函数的特征,就是通过"对象名+(参数列表)"的方式使用一个类对象,如果没有上下文,完全可以把它看作一个函数对待. 这是通过重载类的operator()来实现的. "在标准库中,函数对象被广泛地使用以获得弹性",标准库中的很多算法都可以使用函数对象或者函数来作为自定的回调行为: demo #include <iostrea