Javascript 混淆函数原型和object.getPrototypeOf
我知道有三种方法可以获得对象的原型,在下面的示例中,三种方法的结果是相同的:Javascript 混淆函数原型和object.getPrototypeOf,javascript,constructor,prototype,Javascript,Constructor,Prototype,我知道有三种方法可以获得对象的原型,在下面的示例中,三种方法的结果是相同的: function Person(name) { this.name = name; } Person.prototype.say = function () { console.log("hello"); } var person = new Person(); console.log(person.constructor.proto
function Person(name) {
this.name = name;
}
Person.prototype.say = function () {
console.log("hello");
}
var person = new Person();
console.log(person.constructor.prototype); //Person {say: function}
console.log(Object.getPrototypeOf(person)); //Person {say: function}
console.log(person.__proto__); //Person {say: function}
但是当检查通过object.create创建的对象时,结果似乎不同:
var person = {
name: "Lee",
age: "12"
}
var per1 = Object.create(person);
console.log(per1.constructor.prototype) //Object {}
console.log(Object.getPrototypeOf(per1)) //Object {name: "Lee", age: "12"}
console.log(per1.__proto__) //Object {name: "Lee", age: "12"}
对象不遵循其构造函数的原型吗?如何解释上面的例子
请参见此处的演示:getPrototypeof
只是\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
的一个实现,但它们现在都被认为是不推荐使用的或非标准的。至于第三个示例,我认为您没有得到任何输出,因为它应该是per1.prototype.constructor
。若你们不是那个意思,我在构造函数中的任何地方都找不到这个函数