Javascript数字原型直接设置值

Javascript数字原型直接设置值,javascript,numbers,prototype,Javascript,Numbers,Prototype,我尝试直接从原型方法设置一个数字。 通常,会返回一个新值 这是一个数字对象,也是一个对象。但我想这不是一个参考 我有这个: Number.prototype.bitSet = function(bit) { return this | (1<<bit); }; 顺便说一句,chrome控制台打印[[PrimitiveValue]]数字。TL;DR-您不能这样做,您的初始版本的位集是您需要如何定义它的。使用时需要保存其返回值,例如x=x.bitSet2。不过,如果愿意,您可以

我尝试直接从原型方法设置一个数字。 通常,会返回一个新值

这是一个数字对象,也是一个对象。但我想这不是一个参考

我有这个:

Number.prototype.bitSet = function(bit) {
    return this | (1<<bit);
};

顺便说一句,chrome控制台打印[[PrimitiveValue]]数字。

TL;DR-您不能这样做,您的初始版本的位集是您需要如何定义它的。使用时需要保存其返回值,例如x=x.bitSet2。不过,如果愿意,您可以创建自己的可变数字对象。下面将详细介绍

为了清楚起见,您可能知道:JavaScript既有数字原语,也有数字对象。通常,您处理的是原语。Number.prototype起作用的原因是,当对其调用方法时,使用原语的值创建临时对象。但是,除非有什么东西明确地保存了对象,否则就好像我们只是在处理原语一样

数字在JavaScript.1中是不可变的,因此您的位集方法无法更改其调用的数值;相反,它必须返回一个带有更改的新号码,例如,您的原始版本

请注意,即使您可以更改Number对象的值,您也几乎不会在分配给Number.prototype的函数之外的代码中处理Number对象。例如:

Number.prototype.bitSet=functionbit{
返回这个| 1TL;DR-你不能这样做,你的初始版本的位集就是你需要如何定义它的。你需要在使用它时保存它的返回值,例如x=x.bitSet2。但是,如果你愿意,你可以创建你自己的可变数字对象。下面将详细介绍

为了清楚起见,您可能知道:JavaScript既有数字原语,也有数字对象。通常情况下,您处理的是原语。number.prototype起作用的原因是,在调用原语的方法时,会使用原语的值创建一个临时对象。但是,除非有什么东西显式地保存该对象,否则就好像我们我们只是在处理原语

数字在JavaScript.1中是不可变的,因此您的位集方法无法更改其调用内容的数值;相反,它必须返回一个带有更改的新数字,例如原始版本

请注意,即使您可以更改Number对象的值,您也几乎不会在分配给Number.prototype的函数之外的代码中处理Number对象。例如:

Number.prototype.bitSet=functionbit{ 返回此| 1刚刚注意到的相关项下。这确实是该问题的重复。我更喜欢我的答案在这里,但是,好吧,我会。:-刚刚注意到的相关项下。这确实是该问题的重复。我更喜欢我的答案在这里,但是,好吧,我会。:-
Number.prototype.bitSet = function(bit) {
        this.value = this | (1<<bit);
    };
var num = 0; 
num.bitSet(9);
console.log(num); // num = 512