js window.function 和 function的区别

js window.function 和 function的区别,第1张

windowonload = function(){}与(function(){}) 这两个

1-区别:

windowonload 算 事件

function(){}很平常的一个函数,外加一个()实际返回的就是一个匿名函数对象

2-那个比较好,这个问题不存在~!因为这是2个不同的用途~!

windowonload这个表示网页加载完执行后面的那个函数,而一般形式定义的普通函数,只要常规调用就行了

记住:函数:

是对象-有属性有方法,

是数据-可传进任何函数当数据使用

也是作用域---函数就是限制作用域的一段代码集合,js的作用域是相当于其他程序块级作用域~!(个人总结)

js里Function 与 function的不一样的,不仅仅是大小写的问题。

Function是一个构造器,function是Function实例化的一个对象,包含[[call]][[code]]等等属性,可以被执行。

具体使用方法:

function callAnotherFunc(fnFunction, vArgument) {

fnFunction(vArgument);

}

var doAdd = new Function("iNum", "alert(iNum + 10)");

callAnotherFunc(doAdd, 10); //输出 "20"

定义普通函数就用function:

var func = function(arg0, arg1, argN) { statements };//函数直接量

JS箭头函数和function的区别: 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。 箭头函数不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。 箭头函数不可以使用arguments对象,该对象在函数体内js 箭头函数和function的区别

arguments对象:函数内部对象,传入函数中所有参数的集合,类数组对象

属性:callee 指针,指向拥有这个arguments对象的函数 作用:解耦

例子:迭代

function factorial(num) {

if(num<=1){

return 1;

}else{

return ( numargumentscallee(num-1));

}

}

consolelog(factorial(4));//24

this对象:函数内部对象,引用的是函数执行的环境对象 在全局作用域执行函数时this为全局对象(window)

windowcolor='red';

var o={color:'blue',};

function sayColor(){alert(thiscolor);};

sayColor(); //red

osayColor=sayColor;

0sayColor();//blue 看this引用的谁

caller属性:指向调用当前函数的函数 保存着调用当前函数的函数的引用

function a(){

b();

}

function b(){

alert(bcaller)

}

b();//输出a函数体

apply()和call(): 作用:修改函数this的指向(修改上下文),拓展函数的作用域,对象与方法解耦 区别:传参 apply(要修改的指向,参数数组/arguments对象)

call(要求改成的指向,arg1,arg2)

例子:哑巴说话

function PersonWei() {

}

PersonWeiprototype={

country:'Wei',

sayCountry:function () {

consolelog('I am form '+thiscountry);

},

}

var xuShu={

country:'Shu',

}

var caoCao=new PersonWei();

caoCaosayCountry();// I am form Wei

caoCaosayCountrycall(xuShu); //I am form Shu

不知道这样做合不合理,定义了一个表示魏国人的构造函数PersonWei(),它具有属性:country和方法sayCountry(),然后实例了一个caoCao(曹 *** ),我们想要帮xuShu(徐庶)说出自己的国家:    caoCaosayCountrycall(xuShu);让caoCao的this指向变为xuShu(借尸还魂?脑洞大开,应该就是鬼上身,借用你的身体来实现他的行为),这时候thisconutry 中的this指向的就是xuShu对象了,因此结果是 I am form Shu

比如

jquery不能获取outerhtml 然后就拓展一下

jQueryfnouter = function () {

return $($('<div></div>')html(thisclone()))html();

}

$("#a")outer(); 就相当于 docgetbyid("a")outerhtml;

javascript 自定义函数没什么好说的

javascript 拓展函数是这样 比如 distinct方法

Arrayprototypedistinct = function () {

var $ = this;

var o1 = {}; //存放去重复值

var o2 = {}; //存放重复值

var o3 = []; //存放重复值

var o; //数组单个变量

for (var i = 0; o = $[i]; i++) {

if (o in o1) {

if (!(o in o2)) o2[o] = o;

delete $[i];

} else {

o1[o] = o;

}

}

$length = 0; //清空原数组

for (o in o1) {

$push(o);

}

for (o in o2) {

o3push(o);

}

return o3;

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/13493017.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-09-01
下一篇2025-09-01

发表评论

登录后才能评论

评论列表(0条)

    保存