js函式物件建立

2021-10-01 01:34:31 字數 643 閱讀 1537

var book = function(name,title,price);

var book = book('js','2012',12.4);

var book2 =new book('js','2012',12.4);

上面建立的book與book2不同之處。

執行一下

consol.log(book); //返回undefine(未定義)

console.log(window.name);

console.log(window.price);

console.log(window.title);

new 關鍵字的作用是將當前物件的this不停的賦值。然而book物件建立的時候沒有採用this,直接執行這個函式的時候,由於執行函式在全域性作用域中,所以這個this執行window,這麼一來新增屬性到了winndow 變成了全域性屬性。函式執行完畢返回預設值undefine,所以book的值為undefine.

//規避方法

var book = function(name,title,price)else

};

這樣避免了建立物件時候忘記 new關鍵字

js使用函式來建立物件

js程式設計 es5中沒有class類,只有function,es6向後端靠攏,才出現了類 function people this.eat function 直接這樣使用,this指向window people 使用new關鍵字,會建立物件 var xiaoming new people cons...

js 建立js物件

js建立類有集中方法,我個人比較喜歡的方式是 混合的建構函式 原型方式 比較好理解 用建構函式來定義非函式屬性,用原型方式定義物件的函式屬性,結果所有函式鬥只建立一次,而每個物件鬥具有自由的物件屬性例項。function ocar color ocar.prototype.showcolor fun...

js建立物件陣列 JS 物件

定義 無序的資料集合 鍵值對集合 建立物件的方式 new 操作符 object 建立物件 var person new object person.name lisi person.age 21 person.family lida lier wangwu person.say function 2...