gpt4 book ai didi

新对象构造函数中的Javascript新数组原型(prototype)

转载 作者:行者123 更新时间:2023-11-30 09:21:53 27 4
gpt4 key购买 nike

如果我这样做:

Array.prototype.test = "test"
Array.prototype.t = function() {return "hello"}

每个新的 Array 都将具有属性 test 和方法 t

我怎样才能在不影响所有阵列的情况下做同样的事情?

喜欢:

Names = function(arr){
// Contacts constructor must be the same of Array
// but add the property test and the function t
}
z=new Names(["john","andrew"])

因此 z.test 将返回 "test"z.t() 将返回 "hello" ?(但是 Array.testArray.t 将保持 undefined)

我解释得更好:

Array.prototype.t="test";
Array.prototype.test = function(){ return "hello";}

z=new Array("john", "andrew")
console.log(z);

但这会影响所有数组。我想要相同的,但有一个继承 Array 构造函数的新构造函数 Names。

最佳答案

class Names extends Array {
constructor(...args) {
super(...args);
}
}

Names.prototype.t = 'test';

let z = new Names("john", "andrew")
z.push('Amanda')

console.log(z.t)
console.log(z)

您可以在 Names.prototype 轻松设置它

关于新对象构造函数中的Javascript新数组原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51130113/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com