課程
/前端開發(fā)
/JavaScript
/TypeScript入門
var stock=new getStock("IBM");
2017-04-16
源自:TypeScript入門 7-1
正在回答
關于你提到的為什么要用new關鍵字這個問題,因為上面的getStock是一個構造函數(shù),所以要用new關鍵字來將構造函數(shù)實例化成一個對象,當然在本視頻中老師這個寫法略有些不規(guī)范,平常開發(fā)中默認構造函數(shù)以大寫字母開頭。
this.name=name,這個this指向實例化后的對象。this在js里一共有四種指向,作為對象屬性調用時指向對象,作為函數(shù)調用時指向執(zhí)行這個函數(shù)的對象,作為構造函數(shù)調用時指向實例化后的對象,在call和apply中指向自己定義的對象。
你試試把new去掉后是什么效果。你會發(fā)現(xiàn)為什么去掉后是想要的結果。這里視頻里this.name的this指向的是方法。setInterval里面的this指向的是全局的global,一般是window對象。所以才輸出空。如果將new去掉,都指向的window,前面的this給全局對象的name賦值,后面也就獲得到值了。這里涉及到一些js的基礎也比較底層的知識,可以看一下。
針對代碼,可以這么寫,自己琢磨一下,有new和沒有new的區(qū)別。我把setInterval換成了setTimeout,原理不變:
function?getSocktet(name:?String)?{ ????this.name?=?name; ????console.log(this); ????setTimeout(function?()?{ ????????console.log(this); ????},1000); } var?stock?=?getSocktet("IBM");
我也沒動,前面明明是一個函數(shù),直接調用就行了,為什么要用實例化類的方法來調用這個函數(shù)呢?
MIT的夢
這里其實是聲明了一個構造函數(shù)(或者說“類”也可以),叫getStock,一般用名詞會好理解一點,這里用了動詞所以會有一些誤解。因為是構造函數(shù),所以前面要加 new,實例化出來一個stock對象,實例化過程中構造函數(shù)被執(zhí)行,setInterval()函數(shù)被調用。這是JS面向對象的基礎知識。
舉報
TypeScript入門視頻教程包括TypeScript的基本概念、常用語法和高級特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-07-11
關于你提到的為什么要用new關鍵字這個問題,因為上面的getStock是一個構造函數(shù),所以要用new關鍵字來將構造函數(shù)實例化成一個對象,當然在本視頻中老師這個寫法略有些不規(guī)范,平常開發(fā)中默認構造函數(shù)以大寫字母開頭。
2018-07-11
this.name=name,這個this指向實例化后的對象。this在js里一共有四種指向,作為對象屬性調用時指向對象,作為函數(shù)調用時指向執(zhí)行這個函數(shù)的對象,作為構造函數(shù)調用時指向實例化后的對象,在call和apply中指向自己定義的對象。
2017-09-17
你試試把new去掉后是什么效果。你會發(fā)現(xiàn)為什么去掉后是想要的結果。這里視頻里this.name的this指向的是方法。setInterval里面的this指向的是全局的global,一般是window對象。所以才輸出空。如果將new去掉,都指向的window,前面的this給全局對象的name賦值,后面也就獲得到值了。這里涉及到一些js的基礎也比較底層的知識,可以看一下。
針對代碼,可以這么寫,自己琢磨一下,有new和沒有new的區(qū)別。我把setInterval換成了setTimeout,原理不變:
2017-08-20
我也沒動,前面明明是一個函數(shù),直接調用就行了,為什么要用實例化類的方法來調用這個函數(shù)呢?
2017-04-17
這里其實是聲明了一個構造函數(shù)(或者說“類”也可以),叫getStock,一般用名詞會好理解一點,這里用了動詞所以會有一些誤解。因為是構造函數(shù),所以前面要加 new,實例化出來一個stock對象,實例化過程中構造函數(shù)被執(zhí)行,setInterval()函數(shù)被調用。這是JS面向對象的基礎知識。