function Test(){
this.prop1 = 'prop1';
this.prop2 = 'prop2';
this.func1 = function(){
return this.prop1 + this.prop2;
}
};
Test.prototype.protoProp1 = 'protoProp1';
Test.prototype.protoProp2 = 'protoProp2';
var newKeywordTest = new Test();
var objectCreateTest = Object.create(Test.prototype);
/* Object.create */
console.log(objectCreateTest.prop1); // undefined
console.log(objectCreateTest.protoProp1); // protoProp1
console.log(objectCreateTest.__proto__.protoProp1); // protoProp1
/* new */
console.log(newKeywordTest.prop1); // prop1
console.log(newKeywordTest.__proto__.protoProp1); // protoProp1
Резюме:
1) с ключевым словом new
следует отметить две вещи:
a) функция используется в качестве конструктора
b) function.prototype
объект передается в свойство __proto__
... или где __proto__
не поддерживается, это второе место, где новый объект ищет свойства
2) с Object.create(obj.prototype)
вами конструируют объект (obj.prototype
) и передают его намеченному объекту. с той разницей, что теперь новый объект __proto__
также указывает на obj.prototype (пожалуйста, ссылки на xj9 для этого)
Ответьте на мой вопрос.
uses System.Diagnostics;
function IDEDelphiNetRunning:Boolean;
Begin
Result:=Debugger.IsAttached;
End;
мне подходит.
Пока.
Что-то вроде:
Function IDEIsRunning : boolean;
begin
result := DebugHook <> 0;
end;
Might Suit.