我正在做一個Javascript課程的介紹,需要一些最佳實踐和一些總體反饋的幫助,因爲我的老師似乎對自從他任職以來幫助我們的學生不感興趣。Object.create和init
完整免責聲明:代碼在編譯下,並且是正確(從教授提供的測試用例中判斷)。因此,我不需要實際任務的幫助,但是如何解釋與運行背後的create()和任何(如果有的話)邏輯捆綁在一起的init的用例。
/**
* Exercise 2.2
*
* Create a method 'shape.init(x, y, height, width)' that helps you to
* initiate a object. Try it out by re-initing 'shape1' using the method.
*
* Answer with 'shape1.print()'.
*
* Write your code below and put the answer into the variable ANSWER.
*/
function shape(){
this.x = 0;
this.y = 0;
this.height = 0;
this.width = 0;
}
shape.print = function(){
return 'x:' + this.x + ', ' +
'y:' + this.y + ', ' +
'height:' + this.height + ', ' +
'width:' + this.width;
}
var shape1 = Object.create(shape, {x : {value : 29},
y : {value : 56},
height : {value : 17},
width : {value : 19}});
shape.init = function(x, y, height, widht){
function shape(x, y, height, width){
this.x = x;
this.y = y;
this.height = height;
this.width = width;
}
}
shape1.init(29, 56, 17, 19);
ANSWER = shape1.print();
我有困難的時候,下面是你爲什麼會需要的時候可以使用的Object.create一個初始化函數()(這在我的心靈的作品一樣的INIT)...
老師在這一點上只是一無所知,或者是否存在這樣的情況:實現已經使用object.create()初始化對象的init是否值得呢?
我認爲你需要更具體一點。我不確定哪些位需要澄清。部分原因可能是因爲這不像JS成語。 – ssube
那麼,我不確定的是,爲什麼我們在任何情況下都需要一個init,我們基本上使用object.create()。對我而言,他們是獨一無二的;一個初始化老派對象(java中的'classes'),另一個通過對已經定義的對象的引用來初始化對象,並且它的屬性... – geostocker
'init'函數似乎不正確。它不會返回任何東西。 –