成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript面向?qū)ο缶x書筆記

roadtogeek / 3363人閱讀

摘要:面向?qū)ο缶x書筆記下面代碼的實(shí)際執(zhí)行過程是什么使用原始值和原始封裝類型是有區(qū)別的因?yàn)槭潜唤馕龀梢粋€(gè)對(duì)象的,所以肯定是真的函數(shù)是對(duì)象,函數(shù)有兩種字面形式,第一種是函數(shù)聲明,以關(guān)鍵字開頭后面跟函數(shù)名字。

Javascript面向?qū)ο缶x書筆記

1、下面代碼的實(shí)際執(zhí)行過程是什么?

var name = "fan"
var str = name.charAt(0)     
console.log(str)
var name = "fan"
var temp = new String(name)
var str = temp.charAt(0)
temp = null
console.log(temp)

2、使用原始值和原始封裝類型是有區(qū)別的

var flag = new Boolean(false)
if(flag){
    console.log(flag)
}

因?yàn)閒lag是被解析成一個(gè)對(duì)象的,所以肯定是真的

3、函數(shù)是對(duì)象,函數(shù)有兩種字面形式,第一種是函數(shù)聲明,以function關(guān)鍵字開頭后面跟函數(shù)名字。

function add(){
    //...
}

第二種形式是將函數(shù)作為一個(gè)值賦值給變量

var add = function(){
    
}

函數(shù)聲明會(huì)被提升到上下文頂部,可以先使用再定義

var result = add()
function add(){
    //...
}

而函數(shù)表達(dá)式僅能通過變量引用,因此是沒有辦法提升的。所以下面會(huì)報(bào)錯(cuò)

var result = add()
var add = function(){
    //...
}

4、函數(shù)的length屬性表示該函數(shù)的期望參數(shù)個(gè)數(shù),實(shí)現(xiàn)一個(gè)函數(shù),求其接受任意數(shù)量的參數(shù)并返回他們的和

function sum(){
    var result = 0,
        i = 0,
        l = arguments.length
    while(i < l){
        result += arguments[i]
        i++
    }
    return result
}

5、函數(shù)重載的理解,下面的函數(shù)輸出什么?并解釋下。

function sayHello(name){
    console.log(name)
}

function sayHello(){
    console.log("default msg")
}

sayHello("fan")

解釋:

var sayHello = new Function("name", "console.log(name)")

var sayHello = new Function("console.log("default")")

sayHello("fan")

可以利用參數(shù)的個(gè)數(shù)來模擬函數(shù)的重載

6、改變函數(shù)的this。

1、call()方法

function sayHi(context){
    console.log(context + ":" + this.name)
}

var person1 = {
    name: "fanchao"
}

var person2 = {
    name: "陳冠希"
}

var name = "小姐姐"

sayHi.call(this, "global")
sayHi.call(person1, "person1")
sayHi.call(person2, "person2")

這里是顯示的指定this的值,并不是讓javascript引擎去自動(dòng)指定this

2、apply()方法

function sayHi(context){
    console.log(context + ":" + this.name)
}

var person1 = {
    name: "fanchao"
}

var person2 = {
    name: "陳冠希"
}

var name = "小姐姐"

sayHi.apply(this, ["global"])
sayHi.apply(person1, ["person1"])
sayHi.apply(person2, ["person2"])

apply基本上和call的方式是一樣的,就是接受的第二個(gè)參數(shù)不一樣,是以數(shù)組的形式傳入函數(shù)的,call是需要有多少就要以展開的方式傳入?yún)?shù)例如:

xxxxFun.call(xxObj, param1,param2,...)

3、bind()方法

bind方法是ECMAscript 5中的方法,和之前的call和apply有點(diǎn)不一樣

function sayHi(context){
    console.log(context +  ":" + this.name)
}

var person1 = {
    name: "fanchao"
}

var person2 = {
    name: "陳冠希"
}

//為person1創(chuàng)建一個(gè)方法sayHiPerson1
var sayHiPerson1 = sayHi.bind(person1)
sayHiPerson1("person1")

// 為person2創(chuàng)建一個(gè)方法sayHiPerson2
var sayHiPerson2 = sayHi.bind(person2,"person2")
sayHiPerson2()
// 因?yàn)閠his已經(jīng)綁定給了person1,所以name還是person1的
person2.say = sayHiPerson1
person2.say("person2")

sayHiPerson1方法沒有綁定參數(shù),所以自己還是要在調(diào)用的時(shí)候傳參數(shù)

sayHiPerson2不僅綁定了this指向還綁定了第一個(gè)參數(shù)。參數(shù)的綁定類似call方法。
一個(gè)好的食用鏈接,給個(gè)star唄

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84607.html

相關(guān)文章

  • JavaScript面向對(duì)象精要讀書筆記

    摘要:解除引用的最佳手段是將對(duì)象變量設(shè)置為。字面形式允許你在不需要使用操作符和構(gòu)造函數(shù)顯示創(chuàng)建對(duì)象的情況下生成引用值。函數(shù)就是值可以像使用對(duì)象一樣使用函數(shù)因?yàn)楹瘮?shù)本來就是對(duì)象,構(gòu)造函數(shù)更加容易說明。 JavaScript(ES5)的面向?qū)ο缶?標(biāo)簽: JavaScript 面向?qū)ο?讀書筆記 2016年1月16日-17日兩天看完了《JavaScript面向?qū)ο缶罚▍⒓赢惒缴鐓^(qū)的活動(dòng)送...

    GitCafe 評(píng)論0 收藏0
  • JavaScript面向對(duì)象精要(二)

    摘要:使用時(shí),會(huì)自動(dòng)創(chuàng)建對(duì)象,其類型為構(gòu)造函數(shù)類型,指向?qū)ο髮?shí)例缺少關(guān)鍵字,指向全局對(duì)象。構(gòu)造函數(shù)本身也具有屬性指向原型對(duì)象。 在JavaScript面向?qū)ο缶?一)中講解了一些與面向?qū)ο笙嚓P(guān)的概念和方法,這篇講講原型和繼承。 構(gòu)造函數(shù)和原型對(duì)象 構(gòu)造函數(shù)也是函數(shù),用new創(chuàng)建對(duì)象時(shí)調(diào)用的函數(shù),與普通函數(shù)的一個(gè)區(qū)別是,其首字母應(yīng)該大寫。但如果將構(gòu)造函數(shù)當(dāng)作普通函數(shù)調(diào)用(缺少new關(guān)鍵字...

    wayneli 評(píng)論0 收藏0
  • JavaScript面向對(duì)象精要(一)

    摘要:使函數(shù)不同于其他對(duì)象的決定性特性是函數(shù)存在一個(gè)被稱為的內(nèi)部屬性。其中,是一個(gè)布爾值,指明改對(duì)象本身是否可以被修改值為。注意凍結(jié)對(duì)象和封印對(duì)象均要在嚴(yán)格模式下使用。 數(shù)據(jù)類型 在JavaScript中,數(shù)據(jù)類型分為兩類: 原始類型:保存一些簡(jiǎn)單數(shù)據(jù),如true,5等。JavaScript共有5中原始類型: boolean:布爾,值為true或false number:數(shù)字,值...

    hiYoHoo 評(píng)論0 收藏0
  • JavaScript 權(quán)威指南》讀書筆記 1 - 簡(jiǎn)介

    摘要:原文第一章主要介紹的大概情況基本語法。通過和來引用對(duì)象屬性或數(shù)組元素的值就構(gòu)成一個(gè)表達(dá)式。 原文:https://keelii.github.io/2016/06/16/javascript-definitive-guide-note-0/ 第一章 主要介紹 JavaScript 的大概情況、基本語法。之前沒有 JavaScript 基礎(chǔ)的看不懂也沒關(guān)系,后續(xù)章節(jié)會(huì)有進(jìn)一步的詳細(xì)說明...

    sydMobile 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<