博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Function-JS
阅读量:5267 次
发布时间:2019-06-14

本文共 1390 字,大约阅读时间需要 4 分钟。

函数表达式可以包含名称,例:

var f=function factorial(x){if(x<=1)return 1;else return x*factorial(x-1);}

中,factorial这个函数对象的名称包含在函数作用域中,成为该函数的局部变量。

 

函数声明与函数字面量创建函数最大的不同是:函数声明会提前预加载,即函数声明语句被提前到外部脚本或外部函数作用域的顶部。同样以var 定义的变量也会预加载。

预加载:JS代码在运行前都要进行预加载,目的是事先构造运行环境例如全局环境、函数运行环境、构造作用域链,而环境和作用域的构造的核心内容就是指定好变量属于哪个范畴,因此在JS中变量的定义是在预加载完成而非在运行期间。

 

函数中的参数分别形参和实参,形参可以想像成保存在函数的内部,即与函数一起保存在堆中,而实参则保存在栈中,形参与实参的引用是对实参值的复制,如果实参是对像,则是对实参值即指向地址的复制。

function testFtn(sNm,pObj){        console.log(sNm);// 运行结果:new Name        console.log(pObj.oName);// 运行结果:new obj        sNm = "change name";        pObj.oName = "change obj";    }    var sNm = "new Name";    var pObj = {oName:"new obj"};    testFtn(sNm,pObj);    console.log(sNm);// 运行结果:new Name    console.log(pObj.oName);// 运行结果:change obj复制代码

 

var p=null;var o=Object.create(null);typeof p;//"object"typeof o;//"object"p instanceof Object;//falseo instanceof Object;//false

  p与o一样都不具有原形属性。p!==o,p!=o,说明这两种方法所得的p与o是不相同的。

 

1 function inherite(p){2     if(p===null) throw TypeError();3     if(Object.create)return Object.create(p);4     if(typeof p!=='object'&&typeof p!=='function') throw TypeError();5     function f(){};6     f.prototype=p;7     return new f();      8 }

注:1.Object.create()的第一个参数是原型对象。Object prototype may only be an object or null.所以p必须是一个对象或者是null,才可以用该方法。

      2.具有prototype属性的必须是一个函数。即f.prototype=p。

 

 

 

 

1

转载于:https://www.cnblogs.com/carrie-hong/p/4839851.html

你可能感兴趣的文章
当DIV内出现滚动条,fixed实效怎么办?
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
JSP、Servlet乱码终极解决方案
查看>>
旅途上看的电影和观后感
查看>>
qt实现类似QQ伸缩窗口--鼠标事件应用
查看>>
Ztree异步树加载
查看>>
复杂问题的简单抽象:魔兽世界中的兔子们
查看>>
UVA 10529-Dumb Bones(概率dp)
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>