다음은 새로운 운영자와 관련된 몇 가지 문제입니다. 이 문서에서는 관련 문제를 설명합니다.
결과를 먼저 살펴보세요
function Person (name, age, job) { this.name = name this.age = age this.job = job } Person.prototype.sayName = function () { console.log(this.name) }// 使用new操作符var p1 = new Person('laoyang', '22', 'coding') p1 instanceof Person // true// 不使用new 操作符var p2 = new Object() Person.call(p2, 'xiaoyang', '2', 'test') p2.__proto__ = Person.prototype p2 instanceof Person // true
차이점 비교
// 使用new 操作符直接创建实例var p1 = new Person('laoyang', '22', 'coding') // 不使用new 操作符var p2 = new Object() // p2 创建成为一个对象 这时p2的原型是ObjectPerson.call(p2, 'xiaoyang', '2', 'test') // Person构造函数在 p2 对象的环境内执行 这时p2已经是一个具有Person属性的实例了,但原型是Objectp2.__proto__ = Person.prototype // 最后把Person.prototype 赋值给p2.__proto__,让p2的原型指向Person.prototype
new 연산자를 사용하지 않고 인스턴스를 생성하는 단계:
Person.call(p2, 'xiaoyang', '2', 'test') // d
This 이 글은 새로운 연산자의 관련 이슈를 보여줍니다. 더 많은 관련 이슈는 PHP 중국어 홈페이지를 참고해주세요.
관련 추천:
위 내용은 신규 사업자 관련 이슈에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!