第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

函數(shù)對象在原型鏈查找屬性時是先查找函數(shù)自身的prototype的屬性還是先找Function.prototype的屬性?

函數(shù)對象在原型鏈查找屬性時是先查找函數(shù)自身的prototype的屬性還是先找Function.prototype的屬性?

慕粉3428670 2017-03-11 09:52:28
我們知道,函數(shù)對象都是由Function創(chuàng)建的,即函數(shù)對象都是Function對象的實例。如數(shù)組對象Array是Function的實例,Array對象生成時,繼承了Function.prototype的屬性。 但Array也有自己的原型對象Array.prototype,那么Array對象的實例(如arr = new Array()), arr在原型鏈上查找屬性時是先查找Array.prototype的屬性,還是先查找Function.prototype的屬性?
查看完整描述

3 回答

已采納
?
西蘭花偉大炮

TA貢獻376條經(jīng)驗 獲得超318個贊

Function.prototype.haha?=?"foo"
"foo"
Array.prototype.haha?=?"fun"
"fun"
var?arr?=?new?Array()
undefined
arr.haha
"fun"

應該是這個意思

查看完整回答
1 反對 回復 2017-03-11
  • 慕粉3428670
    慕粉3428670
    我大概明白了。函數(shù)都是由Function對象創(chuàng)建的,而函數(shù)可以new出一個實例對象,但new出來的只是一個對象,并不是函數(shù),所以new出來的實例對象不能使用Function.prototype的屬性和方法(caller、apply()、call()等)。要使用Function.prototype的屬性和方法,屬性和方法前面必須是一個函數(shù)對象,如function Fn1(){...}, function Fn2(){....}, var fn = new Fn1(); Fn2.apply(fn); //fn是Fn1的實例,通過apply可以使用函數(shù)Fn2。
?
微小唯

TA貢獻2條經(jīng)驗 獲得超0個贊

先查找Array.prototype,再是查找,下次你可以在控制臺調試,調試代碼可以如下:

var ?arr=new Array();

console.log(arr.__proto__);

console.log(arr.__proto__.__proto__)

查看完整回答
反對 回復 2017-03-11
  • 慕粉3428670
    慕粉3428670
    按照原型鏈,arr永遠不會查詢到Function.prototype的屬性和方法。[抱拳]
?
慕粉3428670

TA貢獻1條經(jīng)驗 獲得超0個贊

我覺得問題應該是:用Function對象 生成函數(shù)實例時,F(xiàn)unction.prototype上的屬性是否會自動添加到生成的函數(shù)實例上?

查看完整回答
反對 回復 2017-03-11
  • 3 回答
  • 0 關注
  • 2172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號