------------------------------------
1.函数的调用方式,与this的指向问题,原型对象中的this
2.对象创建的几种方式!
3.str.replace
页面初始化话之后,初始化的页面DOM元素绑定事件,通过给实例对象设置一个方法.
this.container =$(html)
将事件绑定在容器上由子元素触发,一个独立的功能就是一个容器
在绑定事件的的时候,将实例化对象先保存一下,这样在事件绑定的函数中就能使用这实例化对象了
this.container包含了功能所涉及的额所有dom节点
$('body').append($(html));两次html会产生两个不同的jQuery对象
 
$('.class').parent().parent()     $('.class.parent')
 
抽取一个对象,这个对象包含的子元素具有的方法,如果设置为这个对象的原型方法,这样操作起来会特别不方便.

 
重复使用的东西就可以转化为对象了.
 
 
2.eval函数:在里面书写java代码字符串,可以执行
在evel方法中没有作用域的概念,声明的变量都是全局变量,函数都是全局函数
功能:执行一段代码,封装了一段代码,
函数封装了一段重复执行的代码,eval函数声明的代码不能重复执行
 
跟函数的比较:
    1.封装了一段代码,只能执行一次
    2.eval中声明的变量和函数都是全局的,没有独立作用域的概念
用途:
    用来解析json数据
var json1 = "[{name:"范明","age":"18"}]";
console.log(json1);//执行结果,直接返回一个数组,对于json的容错率高
var json2 ={"hello":"world"};
console.log(json2)//错误
console.log("("json2")")//添加前后的小括号    如果直接写成数组不行吗??
在解析对象的时候,要用到{},在JS语言中即可以表示对象,又可以表示代码块,在eval中
遇到eval中遇到{}就会把它当做语句来处理,为了解决这个问题,在解析单个对象时候
需要在解析的同时添加前后小括号
 
3.静态属性,实例属性
function  Person(){}
Person.abc=10;//改函数加一个属性 函数对象自身的属性
 
var person = new Person();//p1是Person函数的实例
p1.name="zhangsan";//给实例p1添加的实例属性
 
 
4.所有函数都共有的一些静态属性
name:获取函数的名称
function  foo(){}
foo.name   函数foo的函数名
foo.length   打印函数形式参数的个数
 
caller:表示当前函数的调用是在哪个函数内
function f1(){
console.log(f1.caller);//在全局作用域直接调用,结果为null
    f2();
}
function f2(){
    console.log(f2.caller);//f1函数,在哪个函数内部调用了f2那么输出结果就是哪个函数
}
 
arguments是函数内部的一个属性,保存的是实参的相关信息,是一个伪数组
数组:通过Array构造函数创建的对象
伪数组:不是通过Array构造函数创建的随想,可以使用for循环来进行遍历
var  oarr ={0:"zhangsan",1:"lisi",2:''wangwu",length:3}
获取第一个实参:arguments[0]
获取实参的长度 arguments.length

 
 
 
callee属性 
function foo(){
    console.log(argument.callee);//打印的是函数体本身
}
使用argument.callee实现递归   ES5严格模式下,禁止使用这个对象
"use  strict";//开启严格模式  阮一峰 javascript严格模式详解
//严格模式 禁止给一个未声明的变量赋值   number=20;
//严格模式下 eval具有了独立的作用域 在eval中声明的变量和函数 都是局部变量
//禁止使用arguments.callee进行递归调用
 
=递归=函数自己调用自己
可能出现了死递归
 
  1. //注意递归的结束条件
  2. function fn(n){
  3. if(n==1|| n==2){
  4. return1;
  5. }
  6. return fn(n-1)+fn(n-2);
  7. }
 
  1. /*递归查找父元素*/
  2. function find(child, parent){
  3. /*由子元素查找父元素*/
  4. if(child.parentNode === parent){
  5. returntrue
  6. }
  7. /*找到了文档的最顶端*/
  8. elseif(child.parentNode ==null){
  9. returnfalse
  10. }
  11. return find(child.parentNode, parent);
  12. }
 
 
在chrome浏览器中为了调试方便,id元素的id值就是全局变量了,直接可以使用
this +new 
  1. //使用构造函数创建属性:默认值,传参,动态添加,混合模式
  2. //属性的取值和设置器 get set 数值判断 打折
  3. //取值设置 返回格式化的日期
  4. //日期格式转化的工具方法
  5. //共有属性 实例化后外部的人可以访问到
  6. // 私有属性
  7. functionPerson(){
  8. var name="张三";//实例化的对象 无法访问这个属性
  9. }
  10. //最小原则
  11. //this.config={}//保存当前对象中可能用到的临时变量
指针 当我们定义一个变量的,会在内存中开辟一段区域保存这个变量的值
实例化的本质:就是拷贝构造函数属性的过程
属性屏蔽理论:原型中和构造函数中有相同的属性
如果想访问原型中的属性,delete构造函数中的属性 使用Product.prototype
 
 
 
 

caller.arguments.callee.eval的更多相关文章

  1. Function.caller, arguments.caller, arguments.callee, arguments.callee.calller

    Function.caller指向当前函数的调用者,是arguments.caller的替代者 arguments.caller也是指向当前函数的调用者,已被废弃 arguments.callee是对 ...

  2. 搞清arguments,callee,caller

    arguments是什么? arguments是函数调用时,创建的一个类似的数组但又不是数组的对象,并且它存储的是实际传递给函数的参数,并不局限于函数声明的参数列表哦. 尼玛,什么意思? 写个demo ...

  3. JavaScript中的arguments,callee,caller

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments: arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]argument ...

  4. arguments.callee 调用自身 caller,callee,apply and call

    一.Arguments该对象代表正在执行的函数和调用他的函数的参数.[function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字.n :选项 ...

  5. 理解JavaScript中的arguments,callee,caller,apply

    arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n] 参数function :选项.当前正在执行的 Function 对象的名字. n : ...

  6. js的隐含参数(arguments,callee,caller)使用方法

    在提到上述的概念之前,首先想说说javascript中函数的隐含参数: arguments arguments 该对象代表正在执行的函数和调用它的函数的参数.[function.]arguments[ ...

  7. JQuery Pagenation 知识点整理——arguments,callee,caller,apply应用(20150517)(转)

    arguments 该对象代表正在执行的函数和调用它的函数的参数. [function.]arguments[n]参数function :选项.当前正在执行的 Function 对象的名字. n :选 ...

  8. JavaScript中的內定物件與函式: arguments, callee, caller, this, apply(), call()

    arguments, caller, callee, this都是用在函式(function)內的特殊內定物件.而apply()及call()則是用來呼叫函式的不同作法. arguments可用來取得 ...

  9. arguments对象,caller 和 callee

    arguments对象是比较特别的一个对象,arguments非常类似Array,但实际上又不是一个Array实例. 它指的是函数对象里的参数,且只能在函数内部使用. 使用 检测函数的参数个数,引用属 ...

随机推荐

  1. VS2014:"64位调试操作花费的时间比预期要长",无法运行调试解决办法

    解决步骤: 右键管理员运行命令提示符,输入IISRESERT,重启IIS即可

  2. STM32 系统架构

    这里所讲的 STM32 系统架构主要针对的 STM32F103 这些非互联型芯片 STM32 主系统主要由四个驱动单元和四个被动单元构成. 四个驱动单元是: 内核 DCode 总线; 系统总线;通用  ...

  3. java并发编程笔记(二)——并发工具

    java并发编程笔记(二)--并发工具 工具: Postman:http请求模拟工具 Apache Bench(AB):Apache附带的工具,测试网站性能 JMeter:Apache组织开发的压力测 ...

  4. 20. Cookie 和 Session

    之前我们在Cookie 和Session是什么?已经说过Cookie 和Session,但是为了保证系列的完整性,我们决定重新说一遍,当然可能会有一些区别,建议先从Cookie 和Session是什么 ...

  5. 安装graphviz

    环境win10 1. 下载安装包首先进入官网下载msi文件 安装,一路next,不需要注意什么 2.设置环境变量 安装完毕之后,我们需要手动配置环境变量. 找到刚才我们安装地址,进入graphviz, ...

  6. Linux NIO 系列(02) 阻塞式 IO

    目录 一.环境准备 1.1 代码演示 二.Socket 是什么 2.1 socket 套接字 2.2 套接字描述符 2.3 文件描述符和文件指针的区别 三.基本的 SOCKET 接口函数 3.1 so ...

  7. 【目录】循序渐进学.Net Core Web Api开发系列

    当前标签: 循序渐进学.Net Core Web Api开发系列   循序渐进学.Net Core Web Api开发系列[16]:应用安全续-加密与解密 NET未来之路 2019-03-13 15: ...

  8. 同域SQL server 做镜像服务器遇到1418错误

    今天遇到了如题所说的错误,查了一天没有看到好的解决方案,因为作者是小白,所以对于解决方案都是代码的那种,完全理解不了. 现在,讲述一下我的解决方法.因为是同域的服务器,这个时候说网络访问不了对方,但是 ...

  9. Codeforces 343E 最小割树

    题意及思路:https://www.cnblogs.com/Yuzao/p/8494024.html 最小割树的实现参考了这篇博客:https://www.cnblogs.com/coder-Uran ...

  10. redis搭建主从

    主从概念 ⼀个master可以拥有多个slave,⼀个slave⼜可以拥有多个slave,如此下去,形成了强⼤的多级服务器集群架构 master用来写数据,slave用来读数据,经统计:网站的读写比率 ...