( , ).
...
Object.create(EmployeeNew)
... EmployeeNew. , print init .
console.log(empNew1.init === empNew2.init); // true
console.log(empNew1.print === empNew2.print); // true
, , ...
EmployeeNew, Object.create- 2
Object.create - , ,
EmployeeNew EmployeeNew- , 2
1: EmployeeNew
var EmployeeNew = {
init: function (name) { this.name = name; },
print: function () {
console.log(this.name);
}
};
2: 2 , Object.create
var empNew1 = Object.create(EmployeeNew),
empNew2 = Object.create(EmployeeNew)
3: , , EmployeeNew
empNew1.init("jack");
empNew1.print();
empNew2.init("jack");
empNew2.print();
4: EmployeeNew
EmployeeNew.foo = function() {
console.log( 'Foo was invoked' );
};
5: , 2
empNew1.foo(); // logs 'Foo was invoked'
empNew2.foo(); // logs 'Foo was invoked'
, , empNew1 empNew2 EmployeeNew. , , EmployeeNew Object.create, EmployeeNew, prototype .
, , , empNew1, empNew1 , , , . , .
...
"... , this.name (name:" "), name ..."
, ...
EmployeeNew.name = "unknown"
... , EmployeeNew .
.name (), , : .name .
...
EmployeeNew.name = "unknown";
...
empNew1.name; // "unknown"
empNew2.name; // "unknown"
... ...
empNew1.name = "bubba";
empNew1.name; // "bubba"
empNew2.name; // "unknown"
, empNew1 .name, "bubba". .name empNew1, .
empNew2 .name, - .