Javascript 如何生成这样的数据类型
如果我跑Javascript 如何生成这样的数据类型,javascript,function,Javascript,Function,如果我跑 "string".toUpperCase(); 代码应该返回 STRING 这是如何工作的,据我所知,函数只能这样调用 myFunction("args"); 我如何创建一个调用方法与.toUpperCase()相同的函数这是您的解决方案 String.prototype.myfunction = function () { return this.toUpperCase(); } >>> "hello".myfunction() "HELLO" 这是一
"string".toUpperCase();
代码应该返回
STRING
这是如何工作的,据我所知,函数只能这样调用
myFunction("args");
我如何创建一个调用方法与.toUpperCase()
相同的函数这是您的解决方案
String.prototype.myfunction = function () {
return this.toUpperCase();
}
>>> "hello".myfunction()
"HELLO"
这是一本书
格式类似于Class.method()
在您的示例中,“string”.toUpperCase()“字符串”由string
Class:)包装,因为它是一个字符串
.method()
就是他们有时所称的函数
实际上,在浏览器上,当您定义以下内容时:
function happy(){
console.log("learning");
}
你把它叫做happy()
,它相当于window.happy()。在web控制台上尝试验证
以下是上述参考文献中的示例
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
get area() {
return this.calcArea();
}
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area);
可以将函数直接存储在对象上
let foo = {
bar() {
}
};
foo.bar()
或者,您也可以将其间接存储在对象的原型上
String.prototype.bar = function() {
return "my " + this;
}
let foo = "string";
foo.bar(); // "my string"
向现有原型添加方法(monkey patching)通常被认为是一个坏主意,但在实现原型继承时,通常使用方法定义新原型
function Vehicle() {
this.fuel = 100;
}
Vehicle.prototype.drive = () => {
this.fuel -= 1;
}
let car = new Vehicle();
let train = new Vehicle();
car.drive();
train.drive();
您正在使用的方法存在于
字符串
函数的原型中。您需要阅读JS中原型和构造函数的工作原理。例如:函数Greeter(greeting){this.greeting=greeting;};Greeter.prototype.greet=函数(名称){返回this.greeting+“”+name+“!”;}
。现在您可以执行以下操作:new Greeter(“Hello”).greet(“chaps”)
并获得“Hello chaps!”
。不,我的意思是创建一个函数,在调用时以类似str.toUpperCase的方式调用,具有arg.myfunction
而不是myfunction(arg)
字符串是字符串类Mm的一个实例。不完全是<代码>字符串的“字符串”实例为false
。不要混淆原语和它们的包装器对象。(newstring(“String”)
!=String(“String”)
)。@bowhart哇,谢谢你。因此,包装器
用于访问原语
?您能建议怎么说吗?:)原语通常用于访问包装器。但是您可以显式地创建一个包装器,并使用wrapper.valueOf()
获取底层原语(例如newstring(“String”).valueOf()
)。当然,您可以说“String”是由String
对象包装的字符串原语。从技术上讲,原语没有属性或方法,但JavaScript会在必要时临时将原语强制到其包装器对象(例如“string”.toUpperCase()
创建一个字符串原语,将其强制到其包装器对象,并访问.toUpperCase())
返回新字符串原语的对象上的方法)。