JavaScript一些小知识点的记录2之函数2

简介:

1.当构造函数不需要传递参数时,可以省略那一对小括号。
例如:obj=new Object;
2访问属性的两种方法:
(1).作为对象的属性的话就可以通过.号进行访问。
例如:var a=new String('kehaojian');
alert(a.substring(2,3));
结果是h
(2).使用方括号进行访问.
var a=new Object;
a.y=33;
alert(a['y']);

结果是33

变量的四种不同结果:
var p="kehaojian";
function ke(){
 var p="ke";
alert(this.p); 
}
ke();
结果kehaojian

var p="kehaojian";
function ke(){
  p="ke";
alert(this.p); 
}
ke();

结果:ke

var p="kehaojian";
function ke(){
var  p="ke";
alert(p); 
}
ke();

结果为ke

p="kehaojian";
function ke(){
  p="ke";
alert(this.p); 
}
ke();

结果为ke

3.this关键字表示对某个对象的引用,可以把它理解为一个引用类型的变量,但它的值是由系统确定的,也就是说this无法被赋值的。
(1).在函数体内没有显式的说明它是一个对象,而非window对象的属性时,那么此时的this就是这个对象。
如:var ke=new Object;
ke.hao=function(){
alert(this===ke);
}
结果为true;

function(){
alert(this===windows);
}
function ke(){
alert(this===window);
}
window.ke();
结果为true
(2).当用new关键字来调用函数时,此时的this就是这个构造函数创建的对象。
var ke=new Object;
ke.hao=function(){
alert(this===ke);
}

4.函数Function对象的方法:(相当于Function类)
apply:有两个参数,一个是用来改变this的引用,另一个是用来传递参数列表(一般为数组)。适用于动态的改变this的引用。
call:和apply相似,只是传递的参数有点不同,call第二个参数不是数组。

var obj=new Object;
var func1=new Function("a","b","alert(\"func1\"+(this===window)+(a-b))");
var func2=function(a,b){
alert("func1"+(this===obj)+(a-b));
}
func1(4,5);
func1.apply(obj,[4,5]);
func2(4,5);
func2.apply(obj,[4,5]);

函数的执行环境:

从里到外,里值代替外值,外值仍不变。

caller属性:用来显示函数的调用者。
1.在全局执行环境下,它的值为null
2.在另一个函数中被调用的话,它的值就是那个函数(整个格式都不变)。
var ke=new Function("alert("ke:"+ke.caller)");
function haojian(){
ke();//在这个函数中调用a函数;
alert('haojian:'+haojian.caller);
}
haojian();

结果是ke:function haojian(){
ke();//在这个函数中调用a函数;
alert('haojian'+haojian.caller);
}

haojian:null

5.函数中的arguments对象:只用在函数体内,用来管理函数的实际参数。
有两个属性:
(1).callee:用来显示正在执行的函数,也就是函数的本身。
function ke(){
alert(arguments.callee); 
}
window.ke();

结果是
function ke(){
alert(arguments.callee);

(2).length:用来显示函数被调用时实际传递的参数个数。
例如:function ke(){
alert(arguments[0]+arguments[1]);

window.ke(1,2);
结果是3


6.Constructor: 构造函数:在对象创建或者实例化时候被调用的方法。通常使用该方法来初始化数据成员和所需资源。

每个对象都有一个指向创建自己的构造函数的属性;用this来创建构造函数。
如:function ke(x,y){
this.x=x;
this.y=y;

}
var obj=new ke(4,5);
alert(obj.x+obj.y);


本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/561421,如需转载请自行联系原作者

相关文章
|
19天前
|
自然语言处理 JavaScript 前端开发
[JS]知识点
本文介绍了JavaScript中的多个重要知识点,包括ES6、严格模式、类与对象、解构、跨域问题及入口函数等。文章通过详细示例和推荐的外部资源,帮助读者更好地理解和应用这些概念。内容持续更新中,适合初学者和进阶开发者参考。
14 2
[JS]知识点
|
20天前
|
JavaScript 前端开发 Java
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
本文介绍了JavaScript中常用的函数和方法,包括通用函数、Global对象函数以及数组相关函数。详细列出了每个函数的参数、返回值及使用说明,并提供了示例代码。文章强调了函数的学习应结合源码和实践,适合JavaScript初学者和进阶开发者参考。
34 2
[JS]同事:这次就算了,下班回去赶紧补补内置函数,再犯肯定被主管骂
|
19天前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
19天前
|
JavaScript 前端开发 中间件
JS服务端技术—Node.js知识点
本文介绍了Node.js中的几个重要模块,包括NPM、Buffer、fs模块、path模块、express模块、http模块以及mysql模块。每部分不仅提供了基础概念,还推荐了相关博文供深入学习。特别强调了express模块的使用,包括响应相关函数、中间件、Router和请求体数据解析等内容。文章还讨论了静态资源无法访问的问题及其解决方案,并总结了一些通用设置。适合Node.js初学者参考学习。
33 1
|
27天前
|
存储 JavaScript 前端开发
JS的ES6知识点
【10月更文挑战第19天】这只是 ES6 的一些主要知识点,ES6 还带来了许多其他的特性和改进,这些特性使得 JavaScript 更加现代化和强大,为开发者提供了更多的便利和灵活性。
20 3
|
1月前
|
JavaScript 前端开发
JavaScript 函数语法
JavaScript 函数是使用 `function` 关键词定义的代码块,可在调用时执行特定任务。函数可以无参或带参,参数用于传递值并在函数内部使用。函数调用可在事件触发时进行,如用户点击按钮。JavaScript 对大小写敏感,函数名和关键词必须严格匹配。示例中展示了如何通过不同参数调用函数以生成不同的输出。
|
1月前
|
存储 JavaScript 前端开发
JS函数提升 变量提升
【10月更文挑战第6天】函数提升和变量提升是 JavaScript 语言的重要特性,但它们也可能带来一些困惑和潜在的问题。通过深入理解和掌握它们的原理和表现,开发者可以更好地编写和维护 JavaScript 代码,避免因不了解这些机制而导致的错误和不一致。同时,不断提高对执行上下文等相关概念的认识,将有助于提升对 JavaScript 语言的整体理解和运用能力。
|
1月前
|
存储 JSON JavaScript
JS知识点
JS知识点
21 3
|
1月前
|
JavaScript 前端开发
js教程——函数
js教程——函数
36 4
|
1月前
|
存储 JavaScript 前端开发
js中函数、方法、对象的区别
js中函数、方法、对象的区别
16 2