var F = function(){this.name;};
F.prototype.sayHello = function(){console.log("my name is "+this.name)};
var obj = new F();
obj.name='l4';
var a = JSON.parse(JSON.stringify(obj));
//todo:使a重新拥有sayhello方法 成为F的实例
a.sayHello();
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
object 方法查找是沿着原型链方向的,放constructor有啥用 0.0
obj.sayHello.call(a)
constructor只存在于原型中,一般指向构造函数。只有函数才有原型。如果不重写
a,a作为一个普通的对象(不通过构造函数的方式重写)是不能访问到原型链上的属性的。我暂且想到的方法只能是类似bind()的方法:js的继承不是通过constructor实现的,prototype才是,constructor只是指向它的构造函数
要让一个对象访问到另一个对象上的方法可以用call,apply,实例化或者是a.__proto__=F.prototype