日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

关于function和Object的认识

發(fā)布時(shí)間:2024/9/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于function和Object的认识 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天看了阮一峰老師的文章后,發(fā)現(xiàn)自己理解的function差不少。同時(shí)對(duì)this也有了一定認(rèn)識(shí)。

首先,直接使用function定義的時(shí)候,

var aaaa=function(){this.temp=100 } console.log(aaaa.temp,temp,window.temp)

這幾種都是undefined,typeof(aaaa)是function,此時(shí)的temp屬性只能在function內(nèi)部訪問(wèn),外面是訪問(wèn)不了的。

而使用 new function()

var foo02 = new function() { var temp = 100; this.temp = 200; return temp + this.temp; }

這種方式定義出來(lái)的foo02是對(duì)象,typeof(foo02)是Object,foo02()也會(huì)報(bào)錯(cuò),此時(shí)temp就可以訪問(wèn)了,foo02.temp=200,如果想調(diào)用,則使用foo02.constructor();

還有兩種方法使用new Function()和直接用Function,結(jié)果是一樣的,使用起來(lái)和第一種一樣。

?

關(guān)于this的地方,使用with,注意with是不改變作用域的,如果with的對(duì)象沒(méi)有的屬性,在with里面使用則會(huì)添加到全局作用域中。總之使用with不是特別好,并且對(duì)編譯器的優(yōu)化沒(méi)有好處。

var test1={a:1,func:function(){a=123;console.log(this.a);function test2(){console.log(this.a);}test2();} }

執(zhí)行test1.func();結(jié)果是1 ?123;原因是func中的this是綁定的test1,test1.func此時(shí),this指向test1,但是test2()執(zhí)行的環(huán)境是在func中,作用域是func,這里沒(méi)有定義this.a,所以就向上尋找作用域,到了頂層。而func中定義的a=123沒(méi)有var聲明,所以是全局變量,所以test2中的this.a是全局變量中的a也就是123;再來(lái)一種情況:

var a=321; var test1={a:1,func:function(){var a=123;console.log(this.a)function test2(){console.log(this.a)}test2()} }

此時(shí)test2()輸出的就是321

?

參考文獻(xiàn)

http://javascript.ruanyifeng.com/grammar/object.html

http://www.jb51.net/article/7955.htm

轉(zhuǎn)載于:https://www.cnblogs.com/web-Timer/p/5458878.html

總結(jié)

以上是生活随笔為你收集整理的关于function和Object的认识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。