標籤: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