js instanceof Object Function

來源:互聯網
上載者:User

標籤:his   javascrip   rip   var   com   建立   src   執行   console   

Object、Function是javascript中頂級的兩個對象,同時也屬於兩個頂級的構造器,function Object(){}、function Function(){}。Object、Function為兩個獨立的預先建立的兩個對象。new Object建立一個具有Object特性的新的一個對象,new Function建立一個具有Function特性的一個新對象。

 

Object是一個對象,包含__proto__、prototype屬性。

Object.__proto__ = function(){},  __proto__指向一個對象。

Object.prototype = {

  __defineGetter__:function __defineGetter__()

  ...

     constructor: function Object()

     hasOwnProperty: function  hasOwnProperty()

}

 

Function是一個對象,包含__proto__、prototype屬性。

Function.__proto__ = function(){}, Function.__proto__與Object__proto__指向同一個對象,

即Function.__proto__ == Object.__proto__。

Function.prototype = function(){},Function.prototype、Function.__proto__與Object__proto__指向同一個對象。

即Function.prototype == Function.__proto__ == Object.__proto__。

Function.__proto__.__proto__ = Object.prototype。

Object instanceof Function(true)       Function instanceof Object(true)

obj instanceof func:表示obj原型鏈中是否有func.prototype指向的對象

 

Function.prototype = function(){}

Object.__proto__ = function(){}

Function.prototype與Object.__proto指向同一個對象function(){}

因此,Object instanceof Function 為true。

 

Object.prototype = obj;

Function.__proto__.__proto__ = obj;

Function.__proto__.__proto__ 與 Object.prototype 指向同一個對象,即Function.__proto__.__proto__ = Object.prototype 。

因此Function instanceof Object為true。

 

var obj = new Object();

過程:(1)建立一個新的對象obj(2)obj.__proto__ = Object.prototype

 

 

var Func = new Function(‘first‘,‘second‘,‘this.sum=first+second;console.log(this.sum); ‘);

前兩個是傳入參數,後一個是函數體。

過程:建立一個新的對象func,這個對象是特殊的對象,即函數。建立的過程中,

函數特性:(1)函數可執行(2)函數作為構造器

定義函數其它方式:

(1)

function Func(first,second){

  this.sum = first+second;

  console.log(this.sum);     

}

(2)

var Func = function(first,second){

  this.sum = first+second;

  console.log(this.sum);     

}

 

js instanceof Object Function

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.