⑴ js中函数的内部方法和属性指的什么call()方法是谁的每个对象都有这个方法吗
arguments对象:函数内部对象,传入函数中所有参数的集合,类数组对象
属性:callee 指针,指向拥有这个arguments对象的函数 作用:解耦
例子:迭代
function factorial(num) {
if(num<=1){
return 1;
}else{
return ( num*arguments.callee(num-1));
}
}
console.log(factorial(4));//24
this对象:函数内部对象,引用的是函数执行的环境对象 在全局作用域执行函数时this为全局对象(window)
window.color='red';
var o={color:'blue',};
function sayColor(){alert(this.color);};
sayColor(); //red
o.sayColor=sayColor;
0.sayColor();//blue 看this引用的谁
caller属性:指向调用当前函数的函数 保存着调用当前函数的函数的引用
function a(){
b();
}
function b(){
alert(b.caller)
}
b();//输出a函数体
apply()和call(): 作用:修改函数this的指向(修改上下文),拓展函数的作用域,对象与方法解耦 区别:传参 apply(要修改的指向,参数数组/arguments对象)
call(要求改成的指向,arg1,arg2...)
例子:哑巴说话
function PersonWei() {
}
PersonWei.prototype={
country:'Wei',
sayCountry:function () {
console.log('I am form '+this.country);
},
}
var xuShu={
country:'Shu',
}
var caoCao=new PersonWei();
caoCao.sayCountry();// I am form Wei
caoCao.sayCountry.call(xuShu); //I am form Shu
不知道这样做合不合理,定义了一个表示魏国人的构造函数PersonWei(),它具有属性:country和方法sayCountry(),然后实例了一个caoCao(曹操),我们想要帮xuShu(徐庶)说出自己的国家:caoCao.sayCountry.call(xuShu);让caoCao的this指向变为xuShu(借尸还魂?脑洞大开,应该就是鬼上身,借用你的身体来实现他的行为),这时候this.conutry 中的this指向的就是xuShu对象了,因此结果是 I am form Shu
⑵ Js 怎么调用(function () {里的函数
需要通过return的方式把要调用的函数返回给外部。
比如:
<script>
varta=(function(){//定义一个闭包匿名函数。
returnfunction(){//返回匿名函数内部的匿名函数给ta
alert('1');
}
})();
ta();//执行ta,弹出信息1
</script>
补充:
闭包是指有权访问另一个函数作用域中的变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。这种写法就是闭包的写法,闭包内部的函数如果不是return方式,在外部无法获取,无法进行调用。
Function函数与Sub过程类似。但 Function函数可以有返回值。可以使用参数。如果 Function函数没有任何参数,则 Function语句必须要包含空括号。 Function函数通过函数名返回一个值。返回值的数据类型是Variant.
语法: Function 函数名 (参数1,参数2,...)
...
End Function
Function函数是包含在Function和End Function语句之间的一组VBScript语句。
⑶ js中函数参数的使用.
你这个参数应该是动态拼接的吧,拼接的时候使用onclick="saveNodeEdit('"+编号+"');不就是字符串了?
⑷ js方法调用
JS函数的定义与调用方法
JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式
1.方法调用模式:
先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来执行方法,this即指当前的myobject
对象。
var blogInfo={
blogId:123,
blogName:"werwr",
showBlog:function(){alert(this.blogId);}
};
blogInfo.showBlog();
2.函数调用模式
定义一个函数,设置一个变量名保存函数,这时this指向到window对象。
var myfunc = function(a,b){
return a+b;
}
alert(myfunc(3,4));
3.构造器调用模式
定义一个函数对象,在对象中定义属性,在其原型对象中定义方法。在使用prototype的方法时,必须实例化该对象才能调用其方法。
var myfunc = function(a){
this.a = a;
};
myfunc.prototype = {
show:function(){alert(this.a);}
}
var newfunc = new myfunc("123123123");
newfunc.show();
4.apply,call调用模式
var myobject={};
var sum = function(a,b){
return a+b;
};
var sum2 = sum.call(myobject,10,30); //var sum2 = sum.apply(myobject,[10,30]);
alert(sum2);
⑸ 请教js中 ) 这种函数的用法
多贴点代码吧,我看着怎么就是半个括号呢
⑹ JS中创建函数的几种方法
推荐几篇博客给你,其实这种问题博客或者知乎等都是有大把大把的比较不错的回答了
1、https://blog.csdn.net/JinPingQ/article/details/84335179
2、https://segmentfault.com/a/1190000017970415?utm_source=tag-newest
3、https://www.jb51.net/article/107012.htm
把这几篇博客的内容自己整合一下,就了解的差不多了
⑺ js中什么是函数封装以及怎么用
封装最基本的意思就是对外提供简单功能单一的方法,
比如一个方法根据不同的参数获取不同的页面元素
如点开头的是查找class的元素,#开头的是查找id,不加这两个的是根据标签查找
function getElements()
{
//这里要根据开头判断返回数据
}
这个方法功能虽然多,但是功能不单一不如提供3个对外的方法
function getElementById(id)
{
return getElements("#"+id);
}
function getByClass(cls)
{
return getElements("."+cls);
}
function getByTag(tag)
{
return getElements(tag);
}
这样别人一看方法名就明白这个方法怎么使用了,这就是封装的最简单应用
⑻ js中的方法和函数
functionshowname(ev){
alert("我的名字叫:"+ev.name);
}
functionshowqq(ev){
alert("我的qq:"+ev.qq);
}
这里不能用this,你调用的作用域this指向的是window
⑼ JS中函数调用的问题。
不是滴!
这个是fnclick是对象!
这个是js语法规范滴!
记住就行了!
⑽ javascript脚本中,字符串函数方法有哪些
还是不少的,http://blog.csdn.net/dracotianlong/article/details/7761104