я следующий код в отдельном файле, на который ссылается с тегамиКак создать объект с помощью object.create?
function _TEST()
{
var val;
this.get = function(x)
{
return val;
}
this.prop = 'testing';
this.set = function(x)
{
val = x
return val;
}
this.exp = function(x)
{
function meth(x)
{
return 'I am a private '+x;
}
return meth(x);
}
}
Теперь в головной части главной страницы, у меня есть
var tst = new _TEST();
window.onload = function()
{
tst.set('Hello')
alert(tst.get());
var tst2 = Object.create(_TEST.prototype);
tst2.prop = "testing"; // the only property that shows up for tst2 below
var str = '';
for(var x in tst)
{
str += x+" : "+tst[x]+"\n";
}
str += "\n\ntst2:\n"
for(var x in tst2)
{
str += x+" : "+tst2[x]+"\n";
}
alert(str)
}
Выход вызова предупреждение:
get : function (x) {
return val;
}
prop : testing
set : function (x) {
val = x;
return val;
}
exp : function (x) {
function meth(x) {
return "I am a private " + x;
}
return meth(x);
}
tst2:
prop : testing
Как я понимаю Object.create предположить, чтобы создать объект instande, который наследует от прототипа. , но нет tst2. Что я здесь делаю неправильно? Это тестирование в Firefox 12.0 на Mac OSX, и я не уверен, какую версию javascript он использует. Я Использование O'Reillies Javascript: The Definitive Guide (носорог книгу), чтобы увеличить свои знания объектов и связанных с ними код
Edit: Я понял это:
он работает с
var tst2 = Object.create(tst);